您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 毕业答辩-监控系统中异步串行通信接口程序设计_刘忠建
题目:监控系统中异步串行通信接口程序设计学院:电气与电子工程学院专业班级:电气工程及其自动化07级铁道电气化1班学生姓名:刘忠建同组成员:甘小圆指导教师:申惠监控系统中异步串行通信接口程序设计摘要•通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越重要。•现代生产生活中,为了保证对系统可靠性越来越高的要求,采用了大量自动化设备来进行日常生产、管理和设备维修保养,既可以监控系统运转性能和进行故障预测,又可以为维修保养提供原始资料。随着自动化技术的发展和逐渐普及的自动化生产,越来越多的生产设备配备了与计算机进行数据交换的接口,利用计算机的强大处理能力对检测到的数据进行处理。串行通信因为其诞生时间早,使用简单方便,成本低廉,可以适应大规模长距离传输等多种特点,一直得到各个领域的广泛应用,尤其在工业自动化领域,大量的设备和系统采用串行通信方式进行信息交换。在应用中,异步串行通信应用较多,而通用异步收发器(UART)在其中起着至关重要的作用。•本课题就是就是针对UART的特点,利用C语言设计异步串行通信接口程序,在硬件调试中达到双方通信的目的。•关键词:异步串行通信;异步通信收发器;RS232标准;C语言程序设计作为系统的外设,异步通信适配器和中断控制器都有其对应的I/O口地址,所以本文采用C语言函数库中的寻址函数outportb()和函数inportb()对上述芯片进行直接读写操作。参数说明:•ComPortAddr串口端口地址(COM1口是03F8,COM2口是02F8H)•IntVectNum中断处理号•Baud波特率•Data数据位位数•Stop停止位位数•Parity奇偶校验位(0无校验、1奇校验、2偶校验)程序设计初始化程序设计中断服务程序收发字符程序主函数初始化程序设计初始化串行通信口编程的内容是:确定数据传输帧格式(包括数据位长度、停止位长度及有无奇偶校验和校验的类型)、确定传输波特率以及确定INS8250的操作方式。操作方式是指自发自收的循环反馈方式(用于诊断)还是通常的两点之间的通信方式,是程序查询方式传送还是中断方式传送(课题要求采用中断方式传送)。初始化程序设计首先定义串口初始化函数InitCOM()。确定数据传输帧格式要用到通信线路控制寄存器确定传输波特率要用到通信线路控制器和除数锁存器确定INS8250的操作方式要用到调制解调控制寄存器和中断允许寄存器。采用中断方式,还必须对8259A芯片的中断屏蔽寄存器进行操作,开放IQR4的中断,即允许COM1口提出中断请求。要进行初始化程序设计就必须利用寻址函数对所需寄存器进行读写操作中断服务程序中断服务程序,即从COM1口接收数据,可以首先定义interruptfarasyncint()函数,一个Buffer[]数组,读取字符到缓冲区,待缓冲区满后,再指针复位。在通过寻址函数对8259A的寄存器进行写操作,使中断结束收发字符程序接收字符程序首先定义一个read_char()函数,用来读取缓存区里的数据,我们可定义两个变量buffin和buffout,buffin代表存储在缓存区中的数据个数,buffout代表已经从缓存区中读取的数据个数。通过这两变量的比较,确定缓存区是否还有未被读取的数据。当buffin不等于buffout时表示缓存区有未读数据,此时我们要读出缓存区数据并返回此值;当buffin与buffout相等,表示缓存区中无可读数据。收发字符程序发送字符程序首先定义send_char()函数。通过对8250芯片的通信线路状态寄存器进行读操作来判断发送移位寄存器是否为空,如果为空,则把待发送的数据输出到发送移位寄存器;如果不为空,则等待。主函数首先调用初始化串口函数InitCOM(),设置一个屏幕提示信息,再判断键盘是否有动作。如果是,则读取键盘值存于Unchar参数中,再判断Unchar是否为Ox1B(ESC键键值),如果是则调用read_char()函数,如果不是,则屏幕输出键盘输入字符。如果键盘没动作,则调用read_char()函数,然后再判断是否有字符可读,有则读取,退出。没有则循环。异步串行通信接口程序调试单机测试方式首先我们用TurboC编译器来调试程序,在TurboC中编译运行程序后,得到一个可执行文件。如果单机仅仅拥有一个RS232串口,那么在该机上运行该可执行文件,再将RS232连接线的第2引脚(RxD)与第3引脚(TxD)短路,因为第2引脚和第3引脚分别为接收数据和发送数据,这样的话由第3引脚的输出信号就会被发送到第2引脚而送到同一串行端口的输入缓冲区,即可将数据读入,进入测试过程。异步串行通信接口程序调试近距离两台通信设备测试方式如果要在两台计算机之间进行串口通信,则要分别在两台计算机上运行该可执行文件,并且交换RS232标准线的第2引脚和第3引脚的连线,即将标准线一头的第2引脚连到另一头的第3引脚,将另一头的第3引脚连到这一头的第2引脚,这样第3引脚的输出信号就会被发送到第2引脚而被接收。调试结果采用MODEM方式调试制作四线专线通信线做一根两个Modem之间专线通信用的线。这里使用两个水晶头,外加网线上的缆线。并且按照下图所示来完成线的制作。设置调制解调器设置波特率。设置调制解调器的波特率为2400bps,这样更有利于通信。设置发问方和应答方。两台调制解调器必须有一个为发送数据,另一个为接收数据,也就是我们说的发问方和应答方。并非双方都可以进行发送和接收。这是很重要的一点。要求为四线专线通信方式,所以在设置Modem时,也要设置通信方式为四线专线。设置调制解调器设置四线专线通信协议。我们用的调制解调器里有两种协议,分别为LAPM和MNP,我们只能在两台调制解调器中选择同样的一个协议,以免通信出错。设置速率。注:做到这里,调制解调器也快设置完了。但是还有最重要的一点,那就是保持设置。只有保持了设置,下次通信时就不会需要重新设置了。调试结果无线电台方式调试电台编程设置。连接电台到电脑上,打开超级终端对话,并输入电台安装使用指南中电台命令列表命令。对电台进行发射频率、接收频率、数据接口格式等进行设置。安装天线。在电台设置好之后,需要我们安装天线,安装天线在楼顶空旷处,并且使天线接收面和发送面相对。调试结果
本文标题:毕业答辩-监控系统中异步串行通信接口程序设计_刘忠建
链接地址:https://www.777doc.com/doc-317198 .html