2.2 通信接口电路
鉴于篇幅,这里只给出串口通信中PC端硬件接口部分。
首先由一块MAX232芯片把PC机串行口的RS 232电平转换为TTL电平,然后通过6N137的光电隔离模块进行隔离,再通过MAX 487芯片完成RS 232协议到RS 422协议的转换。其实也就是一个电平被转换为两个压差电平的过程,如图2所示。
2.3 通信软件设计
单片机(下位机)软件开发采用PL/M语言。主要由更新程序和通信程序组成,通信程序又包括通信主程序、接收、发送和定时中断程序等。其中通信主程序是不断循环执行的,如果上位机发送了数据则进入接收中断处理程序,并同时在定时中断中设置一个在接收中断中被清零的计数器,当定时器溢出某个时间范围时,说明接收完毕。这时触发发送中断,上发接收到的整个文件内容用于校验。这里仅给出部分更新程序代码。
固化中断服务程序,并通过在PL/M语句中嵌入汇编语句完成程序的跳转。下载完成后,将程序复制到AT
PC(上位机)操作界面应用Delphi 6.0开发。在Delphi 6.0开发环境下实现串行通信有多种方法,如:调用MSCOMM.OCX控件、在Windows下使用Win-dows API、应用嵌入式汇编语言、直接构造Delphi中的通信控件、利用动态链接库(DLL)等。考虑到该系统的通信情况比较简单,所以直接使用MSComm组件编写串口通信软件,主要包括三个方面的设计内容:
(1)收发数据,指的是在PC机的串口与80C196KC的串口UART之间能收发字符串,二进制串(16进制显示);
(2)收发文件,指的是在PC机的串口与
(3)差错校验及系统可靠性设计。通信的成功与否最后还要看校验的结果,即接收端是否能正确无误的接收到发送端发送的内容。差错控制流程图如图3所示,核心代码如下:
最终开发出的操作界面如图4所示,包括下载进程显示条,串口初始化设置框,收发数据文本框,选择打开发送文件按钮,发送文件大小显示框,校验按钮,文本与16进制类型选择框以及通信状态显示项。
3 结 语
提出了基于串口通信的通用的单片机ISP方法并针对