毕业答辩-监控系统中异步串行通信接口程序设计刘忠建.ppt_第1页
毕业答辩-监控系统中异步串行通信接口程序设计刘忠建.ppt_第2页
毕业答辩-监控系统中异步串行通信接口程序设计刘忠建.ppt_第3页
毕业答辩-监控系统中异步串行通信接口程序设计刘忠建.ppt_第4页
毕业答辩-监控系统中异步串行通信接口程序设计刘忠建.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题目:监控系统中异步串行通信接口程序设计,学 院:电气与电子工程学院 专业班级:电气工程及其自动化 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口接收数据,可以首先定义interrupt far asyncint()函数,一个Buffer数组,读取字符到缓冲区,待缓冲区满后,再指针复位。在通过寻址函数对8259A的寄存器进行写操作,使中断结束,收发字符程序,接收字符程序 首先定义一个read_char()函数,用来读取缓存区里的数据,我们可定义两个变量buffin和buffout,buffin代表存储在缓存区中的数据个数,buffout代表已经从缓存区中读取的数据个数。通过这两变量的比较,确定缓存区是否还有未被读取的数据。当buffin不等于buffout时表示缓存区有未读数据,此时我们要读出缓存区数据并返回此值;当buffin与buffout相等,表示缓存区中无可读数据。,收发字符程序,发送字符程序 首先定义send_char()函数。通过对8250芯片的通信线路状态寄存器进行读操作来判断发送移位寄存器是否为空,如果为空,则把待发送的数据输出到发送移位寄存器;如果不为空,则等待。,主函数,首先调用初始化串口函数InitCOM(),设置一个屏幕提示信息,再判断键盘是否有动作。如果是,则读取键盘值存于Unchar参数中,再判断Unchar是否为Ox1B(ESC键键值),如果是则调用read_char()函数,如果不是,则屏幕输出键盘输入字符。如果键盘没动作,则调用read_char()函数,然后再判断是否有字符可读,有则读取,退出。没有则循环。,异步串行通信接口程序调试,单机测试方式 首先我们用Turbo C编译器来调试程序,在Turbo C中编译运行程序后,得到一个可执行文件。 如果单机仅仅拥有一个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,我们只能在两台调制解调器中选择同样的一个协议,以免通信出错。 设置速率。 注:做到这里,调制解调器也快设置完了。但是还有最重要的一点,那就是保持设置。只有保持了设置,下次通信时就不会需要重新设置了。,调试结果,无线

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论