PC机与单片机多机实时通信的设计与实现
大一点,这样即使暂时来不及处理也不会丢失数据。接收数据缓冲区数据结构示意图如图3所示。
3 RS-485多机通信的实现
89C51单片机的串行口工作方式3可实现多机通信。接收时,若SM2=1,表示置多机通信功能位,这时出现两种可能情况:接收到第9位数据为1时,数据才装入SBUF,并置RI=1向CPU发出中断请求;如果接收到第9位数据为0,则不产生中断标志,信息将抛弃。若SM2=0,则接收到的第9位数据不论是0还是1都产生RI=1中断标志,接收到的数据装入SBUF中。根据这个功能,可实现多个 89C51应用系统的串行通信。
机定时中断服务程序框图
多机通信过程安排如下:使所有从机的SM2位置1,处于只接收地址帧的状态;主机发送一帧地址信息,其中包含8位地址,第9位为地址、数据标志位,第9位置1表示发送的是地址;从机接收到地址帧后 ,各自将所接收的地址与本从机的地址相比较,对于地址相符的从机,使SM2清0以接收主机随后发来的信息,对于地址不相符的从机,仍保持SM2=1状态,对主机随后发送的数据不予理睬,直至发送新的地址帧;主机发送控制指令与数据,给被寻址的从机数据帧的第9位置0,表示发送的是数据。
单片机程序采用PLM51语言设计,主单片机定时中断服务程序框图如图4所示。主单片机RS-485串行口接收和发送中段服务程序框图如图5所示。主单片机RS-232C串行口接收中断服务程序如图6所示。从单片机RS-485串行口接收和发送中段服务程序框图如图7所示。主单片机在主程序中以查询方式将各从机送来的数据从内存中读出后顺序发送给上位PC机。程序清单略。
从实际使用来看,本系统具有较高的性价比,且稳定可靠,稍加改进即可用于自动化测量和实时控制系统的数据通信。
参考文献
1 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术.北京:北京航天航空大学出版社,1990.1
2 陈功富,韩贤东.计算机网设计与实现.北京:人民邮电出版社,1994.10
Visual Basic 串行通信控件 RS-485 RS-232C 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)