搜索
您的当前位置:首页正文

ARM系列单片机与PC机之间的串行通信

来源:榕意旅游网
第7卷󰀁第6期2008年12月常󰀁州󰀁信󰀁息󰀁职󰀁业󰀁技󰀁术󰀁学󰀁院󰀁学󰀁报JournalofChangzhouVocationalCollegeofInformationTechnologyVo.l7No.6

Dec.2008

ARM系列单片机与PC机之间的串行通信

印黄燕

(江苏海事职业技术学院󰀁江苏南京󰀁211170)

摘󰀁要:论述了实时监测系统中ARM单片机与PC机之间的通信方法,介绍了ARM系列单片机与主机串行通信的结构框图

与硬件接口电路,讲述了下位机通信程序的设计方法和上位机通讯的软件实现,并给出了上下位机通讯的流程图。在通信的过程中,需要设定相同的通讯协议才能保证通信的正常。

关键词:单片机;PC机;串行通信;通信程序

中图分类号:TP368.1󰀁󰀁󰀁󰀁󰀁󰀁文献标识码:A󰀁󰀁󰀁󰀁󰀁󰀁文章编号:1672-2434(2008)06-0030-03

TheDesignofSerialCommunicationInterface

betweenARMandPC

YINHuang-yan

(JiangsuMaritimeInstitute,Nanjing211170,China)

Abstract:ThispaperdiscussescommunicationmethodbetweenARMsinglechipandPCinRea-ltimemonitorsystem.Itintroduces

structurediagramandserialcommunicationinterfacecircuitbetweentheARMsinglechipmicrocomputerandhostcompu-ter.Italsointroducesthedesignofhypogenousmachineofcommunicationprogramanduppermachinecommunication.Mo-reover,itgivescommunicationflowcharts.Intheprocessofcommunication,thepropercommunicationcanbeguaranteedonlyontheconditionofthesameprotocolsetting.

Keywords:singlechip;PC;serialcommunication;communicationprogram

0.引言

在实时监测系统中,经常需要接收距离较远的测控点数据,如何快速可靠地实现数据的远程传输,

是这些监测系统必须解决的问题。在监测现场,为了降低系统的成本,往往需要采用单片机系统作为数据采集和记录单元;在中央控制中心,常常要用PC机来完成人机会话及与监测现场的通信。下面介绍实时监测系统中ARM单片机与PC机之间的通信方法。

1.硬件结构设计

系统需要接收距离较远的数据,考虑到RS485接口具有良好的抗噪声干扰性、长的传输距离和多点连接能力等优点,所以选用RS485接口。因普通PC机串口遵循标准的RS232通讯协议,所以在上位机串口与通信电缆间安装一RS232/485协议转换器实现协议转换。图1是系统结构框图。

󰀁󰀁MAX1480是具有电气隔离性的RS485/232通讯接口芯片,系统采用MAX1480芯片与PC机进行数据传输。MAX1480与ARM7TDMI2214的接口电路如图2。

收稿日期:2008-07-05

作者简介:印黄燕(1982-),女,助教,从事研究方向:电力电子与自动化

第7卷󰀁第6期印黄燕:ARM系列单片机与PC机之间的串行通信󰀁󰀁󰀁󰀁󰀁31

线处于接收数据状态。此单元开始发送信息,发送的信息共158个字节。第1个字节和第2个字节分别表示起始标志符和命令符,第3个字节表示数据个数,第4个到第157个字节表示采集的测试数据,第158个字节表示结束标志符。如果地址不符,则将令牌转发到下一单元。

图1󰀁结构框图

2.2󰀁下位机串行通讯程序设计

远端ARM单片机采用中断方式进行数据接收,基于软件编程与上位机进行通讯,下位机中断子程序流程、数据发送流程、串口初始化流程和数据接收流程分别如图3、图4、图5、图6所示。

图2󰀁MAX1480与ARM7TDMI2214的接口电路图

2.下位机通信程序设计

通讯系统以控制中心PC机和下位机通过485通讯电缆以同频异步半双工方式进行数据信息传输,PC机通过串口发送令牌到远端单元,远端单元收到自己的令牌后发送数据到PC机,PC机收到数据后回送正确信息,从而实现控制中心对远端设备的控制和数据采集。

2.1󰀁通讯协议

通讯协议如下:

(1)一桢数据由1位起始位、8位数据位、1位校验位、1位停止位共11位组成。

(2)波特率为9600bps。通讯系统的单片机的串口选用UART0进行数据的发送和接收。PC机串口波特率通过VB通讯控件MSComm的Setting属性设置,为保证数据传输的准确性,两者的波特率必须一致。

(3)系统采用异步通讯方式,上位机通过令牌传递总线(token-passingbus)方式与下位机进行通讯。PC机发送的信息为固定4个字节,第1个字节和第2个字节分别表示起始标志符和远端单元的具体地址号,第3个字节表示发送的是令牌还是命令,第4个字节表示结束标志符。

(4)远端单元接收到令牌后,对照令牌的地址号与本单元地址进行判断,得知令牌是本单元的,总

图4󰀁数据发送流程

图3󰀁ARM单片机中断子程序流程图

32󰀁󰀁󰀁󰀁常󰀁州󰀁信󰀁息󰀁职󰀁业󰀁技󰀁术󰀁学󰀁院󰀁学󰀁报2008年12月󰀁󰀁󰀁󰀁

图5󰀁下位机串口初始化流程

图7󰀁上位机通讯子程序流程图

图6󰀁数据接收流程

4.结束语

本文给出了远程通讯中上位PC机与下位单片机之间异步串行通信的解决方案,此方案在实际运行过程中,运行稳定,效果良好,从而较好地解决了上位机与下位机之间的通信问题。

󰀁󰀁参考文献:

[1]󰀁李朝青.PC机及单片机数据通信技术[M].

北京:北京航空航天大学出版社,2000[2]󰀁范逸之.VisualBasic与RS232串行通讯控制[M].北京:中国青年出版社,2000

[3]󰀁公茂法.单片机人机接口实例集[M].北京:

北京航空航天大学出版社,1999

[4]󰀁周航慈.单片机应用程序设计技术[M].北

京:北京航空航天大学出版社,2002[5]󰀁马忠梅.ARM嵌入式处理器结构和应用基础

[M].北京:北京航空航天大学出版社,2002[6]󰀁周立功等.ARM微控制器基础与实战[M].

北京:北京航空航天大学出版社,2003[7]󰀁阳宪惠.现场总线技术及其应用[M].北京:

清华大学出版社,1999

󰀁󰀁控制中心上位PC机始终在循环发送令牌,当远端单元接收到与本机地址相同的令牌时,置接收数据标志,接收到自己的令牌后,远端单元开始上传数据到上位PC机,与此同时PC机停止发送令牌并处于接收数据状态,等到接收数据完毕并检验数据合格后发送确认命令到此远端单元;如果没收到数据或数据不合格,则发送错误标志到此远端单元;如果收到的令牌与本机地址不同时,程序返回中断入口处,继续执行其它操作。这样可保证远端单元把数据准确地发送到上位机。

3.上位机通讯的软件实现

上位机利用VB6.0进行编程,用VB6.0开发串行通讯程序普遍采用两种方法:一种是利用Win-dows的API函数;另一种是采用VB的通讯控件MSComm。利用API函数编写串行通讯程序较为复杂,需要调用许多繁琐的API函数,而VB6.0的MSComm通讯控件提供了标准的事件处理函数、事件和方法,用户不必了解通信过程中的底层操作和API函数,从而比较容易、高效地实现串口通信。上位机通讯子程序流程如图7所示。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top