《工业控制计算机》!""#年$%卷第%期&’机串口与多个单片机红外无线通信的实现周文举山东枣庄师专计算机系(!%%$(")&’机与一台或多台单片机的通信系统中的数据通讯一般采用的是串行通信方式。
串行通信可采用有线与无线两种方式,作者根据单片机串行通信原理、脉冲编码调制)&’*+技术和红外无线通信技术,开发设计了单片机编解码红外无线通信接口。
用该接口构成的多机通信系统,由于采用红外线为传输介质,而不是电缆线和电磁波,所以特别适用于那些不适合或不方便架设电缆线及电磁干扰较强的工作环境。
本文就利用红外技术实现&’机与多台单片机无线串行通信的实现作一介绍。
!多机通信原理在多机数据通信系统中,&’机与单片机之间的数据通信采用一对多的主从模式,利用波长为,#"!-的远红外波通信。
其原理示意图如图$。
主机为&’机,从机选择*’./0$系列单片机,在&’机上用12345675328(9"编制一个主程序,负责发送从机地址、控制命令和从站之间的信息传输及调度,从站则负责收集现场信息,进行一定的数据处理,根据主站的要求返回数据,并执行主站发出的命令。
主站&’机与从站之间的信息交换是通过*.’:--控件来实现。
在采用主从式多机串行通信系统中,从机不主动发送命令或数据,一切都由主机控制。
并且在一个多机通信系统中,只有一台&’机作为主机,各从机之间不能直接相互通讯,即使有信息交换也必须通过主机转发。
由于发送和接收共用同一物理信道因此在任意时刻只允许一台从机处于发送状态,其余的从机不能发送。
只有被主机呼叫的从机才能占用总线,对主机做出应答。
图$&’机与一单片机串行通信每台从机均分配有一个唯一的从机地址,主机与从机通信时,主机先呼叫某从机地址,唤醒被叫从机后,主、从两机之间进行数据交换,而未被呼叫的从机则继续进行各自的工作。
主机发送的信息可以传到多个从机或指定的从机,各从机发送的信息只能被主机接收。
单片机通过对多机通信控制位.*!进行置位和复位来控制正确接收地址和数据信号,在返回数据时通过设;7<为"或$来区别返回的是数据还是地址。
只有正确地完成了接收和发送任务,才能触发有效的;=,>=信号,进而完成下一步的通信。
接收时,检测>=是否建立起来,当>=为高电平,表示接收完毕。
发送时,检测;=是否建立起来,当;=为高电平时说明发送已经完成。
而在主机上也要设立相应的多机通信机制,这一任务是通过改变*.’:--控件的.?@@2AB 属性中的奇偶校验位来实现的。
发送和接收地址时置奇偶校验位为*,则主机在发送地址过程中发送的第,位;7<为$,而在接收地址时,只有接收到的第,位>7<为$时才能引起’:--CD?A@属性的变化,从而触发EA’:--事件;发送和接收数据时,置该位为.。
则主机在发送数据过程中发送的第,位;7<为",而在接收数据时,只有接收到的第,位>7<为"时才能引起’:--CD?A@属性的变化,从而触发EA’:--事件。
在本设计中主机微机发送字符与接受字符均采用查询方式,发送前先读取通信或状态寄存器,查询发送保持寄存器空否?接收前先读取通信或状态寄存器,查询一帧数据收完否?从机采用中断方式,即接收到地址帧后就进行串行口中断申请,’&F 响应后,进入中断服务程序。
在通信协议中规定:"单片机以方式G 进行通信,一帧数据的第,位为“$”,代表地址帧,为“"”,代表数据帧。
#设定通信波特率为,(""HI3;$地址帧为"$JKLLJ 代表!00台从机地址。
%""J 是以地址帧形式发送的一条对所有从机起作用的控制命令,命令各从机恢复.*!M$,等待接收状态。
为了实现多机通信,所有发射电路的振荡频率和所有的接收电路的振荡频率都必须调整一致,为保证正常通信,防止自己发自己接,数据传送方向必须为半双工传送,收发器在发射时,必须屏蔽自己的接收中断,发射结束后再开放中断。
多机通信过程为:$)主机*.’:--的属性.?@@2AB3M “,("",*,<,$”,所有从机的.*!M$,处于地址帧接收状态。
!)主机发送一帧地址信息,其中包含<位地址,第,位为“$”,与所需的从机进行联络。
G )从机接收到地址信息后,各自将其与自己的地址相比较;对于地址相符的从机使>=M",;7<M$,发送自身地址,并使.*!M",;=M$,以等待接收主机随后发来的所有信息;对于地址不相符的从机仍保持.*!M$状态,对主机随后发来的数据不理睬直至发送新的一帧地址信息。
#)主机接收到地址后修改*.’:--的属性.?@@2AB3M“,("",.,<,$”,然后进行地址校对,若地址校对通过,说明从机已经联络上,发送进一步的通信控制命令信号;地址校对出错,说明从机没有联络上,发送结束本次通信命令,修改*.’:--"#$%&’(%;N23I5I?O P?38O2H?35A?Q -?@N:P @:O?562R?@N?-53@?O 365D?-:P?8:--4A285@2:A @NO:4BN 3?O256I:O@3H?@Q??A &’5AP *46@2-28O:8N2I3HS 432AB 2ATO5O?P9’2O842@UIO:@:8:6UT6:Q 8N5O@5AP I5O@3:4O8?8:P?3:T 17(9"5AP *’.0$5O?563:IO?V 3?A@?P T:O 3?O2568:--4A285@2AB9)*+,-&.$W2ATO5O?PU&’-28O:8N2IU-53@?O 5AP 365D?UQ2O?6?333?O2568:--4A285@2AB摘要本文介绍了用红外线实现上位&’机和多个单片机间的无线串行通信的新方法,给出了硬件线路图、通信协议和程序流程图及用17(9"和*’.0$汇编语言编写的部分串行通信程序。
关键词:红外线,&’机,单片机,主从式,无线串行通信!,!"机串口与多个单片机红外无线通信的实现的属性#$%%&’()“*+,,,-,.,/”。
主机向被寻址的从机发送控制指令与数据,一帧数据的第*位为“,”,表示发送的是数据或控制指令。
0)被叫从机接收到命令后进行命令分析,若为结束通信的命令,则立即置#-1)/,结束本次通信,等待下一次通信,否则执行相应的动作,对于要求返回信息的命令,置23.),,返回正确的响应信息后置#-1)/,恢复其只接收地址帧数据状态。
+)主机接收结束通信命令的返回信息后修改-#"455的属性#$%%&’()“*+,,,-,.,/”,准备进行下一轮的通信。
!硬件构成主要包括红外发射电路和红外接收电路两部分:(/)红外发射电路在红外数据传输的信号调制方式上,采用脉冲调制的二进制不归零码。
这种调制方式比较简单,编码解码都比较方便,有利于电路简化。
红外发射电路如图1所示。
图1红外发射电路由600789的晶振":;,反相器<68",6及电阻、电容构成的振荡器产生600789的方波信号。
经脉冲分频器<6=#*1,六分频成为<0>.?789的脉冲信号。
再经过@触发器构成的1分频A 整形电路变成?.789的方波信号。
由单片机的异步串行口2B 输出的串行数据信号,送到与非门<68",,的输入端。
与非门的另一输入端接?.789的载波信号。
与非门的输出信号用来控制三极管的开通或关断,从而控制红外发射管发送信息。
这样就达到了用串行口2B 输出的串行数据信号直接调制载波,进行红外数据传输的目的。
发射电路的调制采用的是时分制幅度键控调制方式。
因单片机在复位后,2B@脚为高电平,为满足同步的要求,采用低电平同步脉冲,经与非门CD?E 后变成高电平同步脉冲。
所以单片机2B@发送的编码应是反码。
如图?所示F图?串行信号幅度调制图(1)红外接收电路设计中采用一种高效能的红外接收器———德律风根2G-#0?.,。
德律风根所开发的微型接收器2G-#0?.,是近期市场上最高效能的红外接收器。
同一组件内已装上了接收二级管和前置放大器。
2G-#0?.,特点:!单一的接收器和前置放大器的组合;"超敏感度和传送距离;#内置!"-频率过滤器;$无外置组件需要;%特强光及电场干扰屏蔽;&22=及"-H#兼容,适用于微处理器操作控制;’可选频率由?,789至0+789;(低功耗;)I#H*,,,认可。
2G-#0?.,适用于数据传送、电视机、录像机、组合音响及卫星接收器等。
2G-#0?.,的内部框图及构成的接收电路。
如图6所示。
图62GJ#0?.,构成的接收电路图该接收电路要求被接收的红外光波长在*0,*5左右,被调制信号的脉冲宽度不小于+,,*K 。
2G-#0?.,的应用电路非常简单。
实验证明,2G-#0?.,的性能良好,完全可以满足数据传输的需要。
"软件设计串行通信软件包括主机软件和从机软件:(/)主机软件设计该系统主机通信程序设计在J&’L4MK*.环境下采用N3+>,通信控件C-#"455E 编程,-#"455控件具有功能完善的串口数据发送和接收功能以及良好的人机界面。
-#"455控件中在本文需特别指出的属性是:#$%%&’(属性:设置或返回串口端口的波特率C3333E 、奇偶校验位C!E 、数据位C@E 、停止位C#E 。
如:-#"455#$%%&’(K)“*+,,,O ,.,/”。
表示所使用的串口端口的位传输波特率为*+,,3&%A K ,无奇偶校验位,.位数字位,一位停止位。
其中O 的不同取值及其含义为:PQ 偶数CPR$’E 、-Q 标记C-STUE 、OQ 缺省C@$VSWX%EO4’$、HQ 奇数CHLLE 、#Q 空格C#YSZ$E 。
-将第*位置/,#将第*位置,。
利用这两个设置即可实现寻址指令与数据传送指令的分开。
#$%%&’(K 设定完成之后,所送出及收回的字符串便以此为准,使用串行通讯的双方的#$%%&’(K 的设置必须完全相同,这样才能保证通讯的顺利进行,否则通讯的双方将无法正确接收对方所传送过来的信号,也不能触发相应的处理事件。