基于RS485总线技术的PC机与单片机多机通讯设计_田拥军
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第17卷第2期 湖南工程学院学报 V o1.17.N o .22007年6月 Jour nal ofH unan I nstitute o f Eng i n eering June 2007
收稿日期:2006-11-12
作者简介:田拥军(1972-),男,硕士,研究方向:微计算机控制技术.
基于RS485总线技术的PC 机与
单片机多机通讯设计
田拥军1
,赵光强2
,曾健平
3
(1.湖南理工职业技术学院信息工程系,湖南湘潭411104;2.湖南工程学院数理系,湖南湘潭411104;
3.湖南大学应用物理系,湖南长沙410082)
摘 要:采用SN75LBC184来实现RS232C 与RS485串行口的转换,从而使PC 机具备主从式多机通讯功能,实现对多个单片机组成数据采集终端的通讯与管理.约定一种简单和有效的串口通讯协议,根据
这种通讯协议设计出单片机与PC 机串口通讯程序.关键词:RS485;单片机;通讯协议;SN75LBC184
中图分类号:TP393.04 文献标识码:A 文章编号:1671-119X (2007)02-0019-05
0 引 言
用PC 机作为工业自动控制的管理上位机,在现代自动控制技术和智能仪器仪表技术中应用越来越广泛.然而PC 机串行口为标准的RS232C 接口,RS232C 最大通信距离仅为15m ,同时RS232C 是点对点(即只用一对收、发设备)的通信,因此PC 机无法直接对多个下位机进行远离通讯和管理[1]
.
选用RS485串行接口标准可以实现管理微机的远距离对下位机进行通讯管理.本文设计了一种简单实用的RS232与RS485转换电路,同时约定了通讯协议,设计了单片机与PC 机通讯程序.
1 RS 485与RS 232转换电路设计
1.1 RS 485串行口的特点
RS485标准抗干扰能力强,传输速率高,传送距离远.采用双绞线,不用MODE M 的情况下,在100kbit/s 的速率时,可传送的距离为1.2km,若速率降到9600bit/s ,则传送距离可达15k m.它允许的最大速率可达10M b it/s .RS 485允许平衡电缆上连接32个发送器/接收器对,因此RS485适用于多点通信系统中.1.2 RS 485与RS 232转换电路设计
管理微机不能直接与RS485接口,因此还须加
上RS232C 与RS485的转换电路.
RS232C 与RS485转换电路设计选用SN75LBC184芯片.SN75LBC184是美国TI 公司生产的一种RS485接口芯片,可在总线上连接64个收发器.其工作原理如图1所示.发送使能端DE 为高电平,SN75LBC184作为发送器,数据从第4脚输入,第6、7脚输出,其中7脚输出信号的非;接收使能RE 为高电平,SN75LBC184作为接收器,信号从
6脚或7脚输入,1脚输出[2]
.
利用SN 75LBC184设计的RS232C 与RS485转换电路如图2所示.选用PC 机的COM 2接口,但COM 2的9个端口只使用其中的RTS 、RXD 、TXD 与GND 四个端口,以构成简易的四线通信线路.该电路使用了三片光电耦合器TLP521-1进行隔离,这使PC 机与SN75LBC184之间完全没有了电的联系,从而提高了工作的可靠性.当RS232的RTS 端为逻辑电平1(-12V )时,光电耦合器的发光二极管不发光,光敏三极管不导通,输出端为TTL 逻辑电平1(+5V ),此时选中RS485的DE 端允许RS485接收,这样,RS232的TXD 端就可以发送数据(工作逻辑与RTS 端相似).当RS232的RTS 端为逻辑电平0(+12V )时,光电耦合器的发光二极管发光,光敏三极管导通,输出端为TTL 逻辑电平0(0V ),此时选中RS485的RE 端允许RS485发送.当RS485的R 端的输出为逻辑电平1时,光电耦合器发光二极管不发光,光敏三极管不导通,这样,在RS232输
出停止时,其TXD电平为-12V,电容被充电到-12V以使其输出也变成-12V,即逻辑电平1;当其输出为逻辑电平0时,光电耦合器发光二极管发光,光敏三极管导通,这时,其输出为+5V,也在RS232逻辑电平0的范围之内,即为逻辑电平0.
图1SN75LBC184逻辑功能图图2RS232/RS485电平转换器电路
2串口通讯程序设计
2.1通讯协议约定
p系统中允许接有64台从机,它们的地址分别为00-3F H.
p地址FFH是对所有从机都起作用的一条控制命令,为管理微机广播指令,所有单片机接收从管理微机发送来的数据.
p管理微机发送的控制命令代码为00H时要求从机接收数据块,01H时要求从机发送数据块,其它为非法命令.
p每次收发数据块的长度为10个字节.
p波特率设计为2400b/s,数据格式用8位数据,1个停止位,无奇偶校验.
p管理微机采用查询方式接收和发送数据,单片机采用中断方式接收地址帧和命令帧,查询方式接收和发送数据.
p检验方式采用累加和校验,握手信号采用软件握手.
p管理微机要求与从机通讯时则先发送从机地址,从机响应后发回地址,PC机随后发送控制命令代码,从机根据命令代码来调用发送与接收程序.
p接收方在收到发送方发送过来的校验和后与自己所累加的校验和相比较,相同则回送一个/Y0(ASCⅡ码为59H),表示传送正确并结束本次的通信过程;若不相同则回送一个/N0(ASCⅡ码为4E H),表示传送不正确,并要求发送方重新发送数据,直到接收正确为止.
p单片机通讯采用R7作为发射与接收计数器,R6作累加和寄存器用.
2.2单片机通讯程序设计
串行口选择工作方式1,其波特率由定时器T1的溢出率与S MOD位同时控制.定时器T1则选操作模式2,S MOD=0波特率不增倍,单片机的振荡频率fosc选11.0592MH z,波特率设定为2400b/s.
单片机通讯程序主流程图如图3(a)所示.单片机采用中断方式接收PC机发来的地址帧与命令帧.如PC机想要与某下位机通讯,则首先往总线上发送该下位机的地址,此时所有下位机均中断响应,比较总线上的地址是否与本机地址相符,如不符则退出中断程序,相符则发回地址.当地址为FFH时,所有的下位机均调用接收程序,接收PC机的广播数据,这种方式适合在自动控制过程中PC机对所有下位机进行相同的控制.PC机接收到下位机发来的地址后,向总线发送命令帧,当命令帧为00时,下位机发送数据给PC机;当命令帧为01时,下位机接收PC机发来的数据[3].
单片机发送程序流程图如图3(b)所示.单片机每次发送10个字节的数据,每发送完一个字节,计算一次校验和.当数据发送完毕,则发送累加和,然后等待接收PC机的应答信号.如果PC机接收数据时计算的累加和与单片机发送的累加和一致,则表示数据无误,PC机发回59H(/Y0的ASCⅡ码);如累加和不一致,则表示数据出错,PC机发回4E H (/N0的ASCⅡ码).当单片机收到PC机的应答信
20湖南工程学院学报2007年
号为59H 时,结束本次发送;当单片机收到PC 机的应答信号为4E H 时;重新发送数据.
单片机接收程序流程图如图3(C )所示.由于通讯协议约定的数据块长度为10字节,因此单片机每次接收10字节的数据.在每接收一个字节的数据后,计算一次累加和,10个字节的数据接收完后再
接收从PC 机发来的累加校验和.把单片机计算的累加和与接收的累加和进行比较,相同则发回59H (/Y 0的ASC Ⅱ码)的应答信号给PC 机;累加和不同则发回4E H (/N 0的ASC Ⅱ码)的应答信号给PC 机,然后重新接收PC 机发来的数据
.
图3 单片通讯程序流程图
2.3 PC 机通讯程序设计
2.3.1 对8250的初始化
可编程串行异步通信控制器(UART)8250是
PC 机串行通信接口电路和核心,通过对8250的编
程,可以控制串行数据的传送格式的速率.而且,串行通信接口不同,8250各寄存地址不同.若选COM 1,则8250各寄存器的地址为3F8H -3FEH;若选C OM 2,则8250各寄存器的地址为2F8H -2FE H.本设计选用COM 2作为单片机的串行通信接口[4]
.
8250各寄存器的初始化程序放在主程序中,初
始化顺序如下:
(1)向通信线路控制寄存器LCR (2FB H )送80H,即寻址波特率除数寄存器.
(2)向两个波特率除数锁存器(LSB 和M SB )送一个除数,计算方法如下
除数=1843200A (16@波特率)=30H
波特率除数锁存器2F9H 为00H,2F8H 为30H.其中1843200H z 为8250的工作频率.
(3)根据数据帧格式的约定,当发送的是地址帧时,向通信线路控制器LCR (2FB H )送2B H 即00101001B ,作为地址帧的发送的接收标志.反之,
当发送的是数据时,向通信线路控制器(2FB H )送3B H 即00111011B ,作为数据帧的发送和接收标志.
(4)中断允许寄存器(2F9H )置为00H,以禁止中断,从而满足查询方式通信的要求.2.3.2 PC 机发送、接收一组数据程序
PC 机发送一组数据子程序流程图如图4(a ).首先发送从机单片机的地址码,然后接收从机单片机回送的地址码,如相符则发控制命令字给从机.控制命令字为00H (单片机接收数据命令)以及01H (单片机发送数据命令).这里为PC 机发送数据,单片机接收数据操作,因此控制命令字为00H.控制命
21
第2期 田拥军等:基于RS485总线技术的PC 机与单片机多机通讯设计
令字发送成功后,发送存放在s .txt 文件中的10帧数据,且计算累加和.数据发完后,发送累加和,然后接收单片机回送的应答信号,如应答信号为59H
(/Y 0的ASC Ⅱ码),表示发送成功,完成本次发送,否则重新发送.
PC 机接收一组数据子程序流程图如图4(b).PC 机在发送地址成功后,发送的控制命令字为01H
(单片机发送数据命令),然后打开r .t x t 文件,接收的10帧数据存放在r .tx t 中,同时计算累加和.接收数据完成后,再接收单片机发送的累加校验和,把接收累加校验和与PC 机计算的累加和相比较,如相同则发回59H (/Y 0的ASC Ⅱ码),结束本次接收;否则发送4E H (/N 0的ASC Ⅱ码),重新接收数据
.
(a)PC 机发送一组数据子程序流程图 (b )PC 机接收一组数据子程序流程图
图3 单片通讯程序流程图
3 结束语
本设计被用于作者所设计的电能管理系统,实践证明本设计性能稳定,通讯可靠.因此,可直接移
植于其它工业自动控制设计中.
参 考 文 献
[1] 凌志浩.智能仪表原理与设计技术[M ].上海:华东理
工大学出版社,2003:113-122.
22
湖南工程学院学报 2007年
[2] 邓素萍.串行通信RS232/RS485转换器[M ].国外电
子元器件,2001,(7):62-63.
[3] 曹巧媛.单片机原理及应用[M ].第二版.北京:电子
工业出版社:2002:128-144.
[4] 赵 亮,侯国锐.单片机C 语言编程与实例[M ].北
京:人民邮电出版社,2003:254-259.
Design of DataM ult-i co mmunication Bet wee n PC
and Si ngle Chip Co mputer Based on RS 485
T I A N Y ong-jun 1
,Z HAO Guang-qiang 2
,ZENG Jian-p i n g
3
(1.D ept .o f Infor m ation Eng .,H unan V ocati ona l Institute o f T echno l ogy ,X iang tan 411104,Chi na ;
2.Dept .ofM ath .&Phy .,H unan Instit ute o f Eng ine rr i ng ,X iangtan 411104,Ch i na ;
3.D ept .of A pp lied Phy si cs ,H unan U n i versity ,Chang sha 410082,Ch i na)
Abst ract :SN75LBC184is used to rea lize the s w itch ofRS232and RS485so that the personal co m puter has mu lt-i
co mmunicati o n functi o ns .A si m p le and availab le co mmunicati o n protoco,l A cco r d i n g to th i s pr o toco,l the seri a l co mmunicati o n pr ogra mm e bet w een persona l co m puter and sing le ch i p co m puter is desi g ned .K ey w ords :RS485;si n g le ch i p co m puter ;co mm un icati o n pro toco;l SN75LBC184
(上接第10页)
[5] D j ukanov ic M,K ha mm ash M,V itta l V.A pp licati on of
t he Struc t ured S i ngu l ar V a l ue T heory fo r Robust Stab ility and Contro lA nalysis i n M ulti m achi ne P o w er Syste m s part -I :F ra m e w ork D eve l op m en t[J].IEEE T rans .on P o w-er Sy stem s ,1998,13(4):1311-1316[6]
Iwasak,i T.
and R.E .Ske lt on .A ll Contro ll e rs for the
G enera l H Control Prob le m:LM I Ex istence Conditions and State Space Fo r mu las [J].Autom atica ,1994,
30
(8):1307-1317.
[7] X ie L ihua .Ou t put feedback H Contro l o f Syste m s W ith
Pa rame ter U ncerta i nty[J].In t .J .of Contro ,l 1996,63(4):741-750.
Robust Control and Si m ulation of Flyi ng Control Syste m
wit h W i de Operation Range
LI Ji n g-w ei
(Schoo l of Infor m a tion Sc i ence and T echno logy ,X i am en U n i ve rs i ty ,X i am en 361005,Chi na)
Abst ract :This paper deals w ith a class of para m etric uncerta i n ty w ith polyno m ial for m i n pertur bation para m eters .Based on opti m a l fitti n g m et h od ,a flying contro l syste m fitting i n to w i d e operation range is estab lished .For so m e fl y ing control syste m m odels ,the robust contr o lm ethod is proposed .The si m u lation de m onstrates that the m ethod is pactica.l
K ey w ords :fitti n g ;uncerta i n ty syste m;fl y ing control syste m;r obust stabilization
23
第2期 田拥军等:基于RS485总线技术的PC 机与单片机多机通讯设计。