毕业答辩-监控系统中异步串行通信接口程序设计刘忠建

毕业答辩-监控系统中异步串行通信接口程序设计刘忠建

ID:39719779

大小:672.50 KB

页数:19页

时间:2019-07-10

毕业答辩-监控系统中异步串行通信接口程序设计刘忠建_第1页
毕业答辩-监控系统中异步串行通信接口程序设计刘忠建_第2页
毕业答辩-监控系统中异步串行通信接口程序设计刘忠建_第3页
毕业答辩-监控系统中异步串行通信接口程序设计刘忠建_第4页
毕业答辩-监控系统中异步串行通信接口程序设计刘忠建_第5页
资源描述:

《毕业答辩-监控系统中异步串行通信接口程序设计刘忠建》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、题目:监控系统中异步串行通信接口程序设计学院:电气与电子工程学院专业班级:电气工程及其自动化07级铁道电气化1班学生姓名:刘忠建同组成员:甘小圆指导教师:申惠监控系统中异步串行通信接口程序设计摘要通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。现代生产生活中,为了保证对系统可靠性越来越高的要求,采用了大量自动化设备来进行日常生产、管理和设备维修保养,既可以监控系统运转性能和进行故障预测,

2、又可以为维修保养提供原始资料。随着自动化技术的发展和逐渐普及的自动化生产,越来越多的生产设备配备了与计算机进行数据交换的接口,利用计算机的强大处理能力对检测到的数据进行处理。串行通信因为其诞生时间早,使用简单方便,成本低廉,可以适应大规模长距离传输等多种特点,一直得到各个领域的广泛应用,尤其在工业自动化领域,大量的设备和系统采用串行通信方式进行信息交换。在应用中,异步串行通信应用较多,而通用异步收发器(UART)在其中起着至关重要的作用。本课题就是就是针对UART的特点,利用C语言设计异步串行通信接口程序,在硬件调试中达到双方通信的

3、目的。关键词:异步串行通信;异步通信收发器;RS232标准;C语言程序设计作为系统的外设,异步通信适配器和中断控制器都有其对应的I/O口地址,所以本文采用C语言函数库中的寻址函数outportb()和函数inportb()对上述芯片进行直接读写操作。参数说明:ComPortAddr串口端口地址(COM1口是03F8,COM2口是02F8H)IntVectNum中断处理号Baud波特率Data数据位位数Stop停止位位数Parity奇偶校验位(0无校验、1奇校验、2偶校验)程序设计初始化程序设计中断服务程序收发字符程序主函数初始化程序

4、设计初始化串行通信口编程的内容是:确定数据传输帧格式(包括数据位长度、停止位长度及有无奇偶校验和校验的类型)、确定传输波特率以及确定INS8250的操作方式。操作方式是指自发自收的循环反馈方式(用于诊断)还是通常的两点之间的通信方式,是程序查询方式传送还是中断方式传送(课题要求采用中断方式传送)。初始化程序设计首先定义串口初始化函数InitCOM()。确定数据传输帧格式要用到通信线路控制寄存器确定传输波特率要用到通信线路控制器和除数锁存器确定INS8250的操作方式要用到调制解调控制寄存器和中断允许寄存器。采用中断方式,还必须对82

5、59A芯片的中断屏蔽寄存器进行操作,开放IQR4的中断,即允许COM1口提出中断请求。要进行初始化程序设计就必须利用寻址函数对所需寄存器进行读写操作中断服务程序中断服务程序,即从COM1口接收数据,可以首先定义interruptfarasyncint()函数,一个Buffer[]数组,读取字符到缓冲区,待缓冲区满后,再指针复位。在通过寻址函数对8259A的寄存器进行写操作,使中断结束收发字符程序接收字符程序首先定义一个read_char()函数,用来读取缓存区里的数据,我们可定义两个变量buffin和buffout,buffin代表

6、存储在缓存区中的数据个数,buffout代表已经从缓存区中读取的数据个数。通过这两变量的比较,确定缓存区是否还有未被读取的数据。当buffin不等于buffout时表示缓存区有未读数据,此时我们要读出缓存区数据并返回此值;当buffin与buffout相等,表示缓存区中无可读数据。收发字符程序发送字符程序首先定义send_char()函数。通过对8250芯片的通信线路状态寄存器进行读操作来判断发送移位寄存器是否为空,如果为空,则把待发送的数据输出到发送移位寄存器;如果不为空,则等待。主函数首先调用初始化串口函数InitCOM(),设

7、置一个屏幕提示信息,再判断键盘是否有动作。如果是,则读取键盘值存于Unchar参数中,再判断Unchar是否为Ox1B(ESC键键值),如果是则调用read_char()函数,如果不是,则屏幕输出键盘输入字符。如果键盘没动作,则调用read_char()函数,然后再判断是否有字符可读,有则读取,退出。没有则循环。异步串行通信接口程序调试单机测试方式首先我们用TurboC编译器来调试程序,在TurboC中编译运行程序后,得到一个可执行文件。如果单机仅仅拥有一个RS232串口,那么在该机上运行该可执行文件,再将RS232连接线的第2引脚

8、(RxD)与第3引脚(TxD)短路,因为第2引脚和第3引脚分别为接收数据和发送数据,这样的话由第3引脚的输出信号就会被发送到第2引脚而送到同一串行端口的输入缓冲区,即可将数据读入,进入测试过程。异步串行通信接口程序调试近距离两台通信设

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。