发布成功
赞赏金额:
支付金额:5元
支付方式:
赞赏成功!
你的赞赏是对作者最大的肯定~?
每个晶体管和与它相连的线路构成有时延特性的RC电路。处理器的最大可用时钟频率取决于该电路的最大延迟。同样的,每个触发器在接收输入电压和由此引致的输出电压之间有个特征时间窗口。这个窗口由给定的电压和温度来确定。
如果用时钟噪声(比正常的时钟脉冲要短得多)或电源噪声(电源电压的快速波动)将会影响芯片里的某些晶体管,导致一个或多个触发器进入错误状态。通过改变参数,处理器会被导致执行许多完全不同的错误指令,有时甚至是不被微码支持的。尽管我们不会预先知道何种噪声会导致何种芯片的何种错误,但它能相当简单地进行系统的搜索。
一般来说,完整的遥控码分为头码、位址码、资料码和校验码四个组成部分。头码根据不同的厂家各不相同,位址码和资料码都由逻辑“1”和逻辑“0”组成。编码的设计目的,就是按照编码规则发送不同的码值。遥控编码晶片最常用的是在空调、DVD、车库门等遥控器上。设计编码程式可以分为三个部分∶了解码型的特性。遥控码的头码和位址码(也称为客户码)是固定不变的,资料码和校验码根据不同的键值而改变。计算发码时间。遥控码大部分都是由逻辑“1”和逻辑“0” 组成,也就是由一串固定占空比、固定周期的方波所组成。通常这些方波的周期是毫秒甚至微秒等级,需要在时间上计算的比较精确。所以你选择发码MCU型号的时候,就要考虑到MCU的运行速度是不是够快,以及程式运行时间够不够。
程式的编写。选定MCU型号之後,开始设计程式流程。一般来说我们使用I/O口就可以做发码的输出埠。发码程式一般由几个子程式组成,头码副程式、逻辑1副程式,逻辑0副程式以及校验码的演算法副程式。一旦我们得到要发送码的命令後,首先调用头码副程式,然後根据客户码和键值调用逻辑1副程式或者逻辑0副程式,最後调用校验码演算法副程式输出校验码。
设计解码程式也可以分为三部分∶了解编码波形特性。从分析编码的高、低脉冲宽度入手,了解逻辑“1”和逻辑“0”的波形占空比、周期,了解头码的特性。确定接收方式。一般我们可以用I/O口查询方法或者INT 口中断回应方法来接收编码。这两者的区别是I/O口查询方式比较耗费MCU的运行时间资源,需要不断的去侦测I/O的电平变化,以免漏掉有效的码值;而INT口中断接收方式则比较节省资源,当外部有电平变化时,MCU才需要去处理,不需要时刻进行侦测。
但是INT口中断接收方式不能辨别相同周期不同占空比的波形特性,当编码所携带的逻辑“1”和逻辑“0”具有这种特性时,就无法通过INT口中断接收方式来辨别了,因为INT中断只是在上升沿或者下降沿的时候才触发。将接收的码值存储并分析执行。根据判断高低电平的宽度(计时器或者延时),可以得到码值,也就是所说的解码。一般我们连续收到3个相同的完整码值,就确认此码的确被发出,并接收成功。当解码结束,根据码值我们可以判断出是哪个按键被按下,由此去执行相对的按键功能。
推荐阅读: