欢迎来到专业的新思文库网平台! 工作计划 工作总结 心得体会 事迹材料 述职报告 疫情防控 思想汇报 党课下载
当前位置:首页 > 范文大全 > 公文范文 > 正文

含RS-232接口的I/O板卡的开发

时间:2022-10-27 10:00:05 来源:网友投稿

随着计算机控制技术的发展,各专业公司推出了许多种总线型的工业控制卡,其中,大多数都是ISA及PCI并行接口的。虽然,这些I/O控制卡的速度快,实时性也高,但在很多控制系统中不太适用。原因有三个方面,其一是这些卡的操作复杂,灵活性不太好,使用卡的人必须编制相应的驱动程序去控制卡的运行,而且在Windows界面下的编程也很复杂;其二,各种I/O控制卡的价格昂贵;其三,大多数PC提供多种插槽,但那些超薄型计算机,如便携式电脑和嵌入式电脑并没有控制卡的空间和扩展槽的位置,故不能用这些电脑实现I/O卡控制。本文介绍一种含RS-232接口的I/O板卡,将计算机串口进行二次开发,用于工业现场控制系统,代替控制卡的作用,并提供相应的驱动程序,具有成本低、操作简单、兼容性好等优点。

系统功能简介

本I/O卡主要用于需要采用计算机在工业现场进行控制的场合,主要功能如下:提供11路12位的A/D转换、4路12位的D/A转换、16路带光电隔离的开关量输出、16路带光电隔离的开关量输入及1路16位计数器输入;提供一个带光电隔离的RS-232接口,上位机(通常指PC)能通过此端口对本卡上所有的资源进行控制与读入;另扩展一片8255,其PA、PB口作为输入端用,PC口作为本控制卡的一些设置,如用它作为波特率等的设置;本卡还可由DS12C887完成日期、时间、星期的设置、调整和输出。本文主要就系统硬件电路的设计(包括地址译码)及软件设计(通讯协议为主)来对系统的功能进行描述。

硬件电路设计

本控制卡原理框图如图1所示。其中,微控制器采用美国ATMEL公司的AT89C51,它内部有4K的程序存贮器,可以为本板卡节省空间,同时扩展一片数据存贮器62256芯片(32K)及X25045(512×8bits)看门狗电路构成基本的单片机系统。考虑到在一般的工业控制系统中,由于对A/D、D/A转换的速度不太高,所以本卡中的A/D转换采用TLC2543,它是TI公司生产的带串行控制的11路12位A/D转换器件,能对0~5V信号进行12位转换;D/A转换器采用TI公司的双路12位串行接口的D/A转换芯片TLC5618。为了适合更多的工业控制要求,本控制卡目前使用了两片TLC5618,共可以输出4路模拟量。为了提高抗干扰能力,对输入输出端口采用TL521-4进行光电隔离。RS-232接口采用MAXIM公司的MAX232芯片作为电平转换,实现单片机的TTL电平与计算机的RS-232电平的转换。同时为了提高整个系统的工作稳定性,对RS-232通讯口进行光电隔离。由于系统通讯速度可能要求比较高,所以采用了高速光耦6N137作为隔离元件,同时增加一个DC-DC变换器,产生隔离电源,供隔离后的电路使用(如图2所示)。在本卡中,P1用于对一些串行接口的芯片进行控制,为了节省口线,对公共的CLK、DI、DO线公用,组成一条串行总线系统,P13、P14、P15、P16分别为各芯片的片选信号。具体接法如图3所示。

本控制卡由ATF16V8可编程逻辑芯片负责地址译码。62256地址为0~7FFFH,其片选信号直接接地址线A15。8255基地址FF00H,其片选信号CS=A8+A9+A10+A11+A12+A13+A14+A15;2片输出口扩展74LS377地址分别为FB00H和FC00H,其片选信号为CS1=A15+A14+A13+A12+A11+A10+A9+A8;CS2=A15+A14+A13+A12+A11+A10+A9+A8。

软件设计

本卡软件采用C语言设计,串行口的接收采用中断方式,串口发送采用查询方式,当收到一个完整的指令后,由中断程序置一标志,主程序检测到这一标志后,对收到的指令进行处理,主程序框图如图4所示。

为了本控制卡使用方便,我们制定了一套较为完善的通讯协议。协议规定每一条指令或返回数据由以下几部分组成。

第一字节:为一帧数据的长度,以字节为单位,指第二字节到最后一个字节的字节总数。

第二字节:一个表示数据或指令类型的ASCII码,“D”表示开关量,“A”表示模拟量,“T”表示计算返回的值。

第三字节:一个表示输入输出类型的ASCII码。“O”表示输出,“I”表示输入。

最后字节:表示除第一字节和最后一字节外的校验和,取低8位。

中间的其余字节为数据内容,表示模拟量时为模拟量的二进制值,表示开关量时为开关量的状态。在通讯时,接收方如正确接收则返回1AH,否则返回1CH,请求重发。具体的指令设置包括有以下几种情况:

读开关量状态格式:字节数 “D”“I”;响应:字节数 “D” “I” “FFFF”,其中,FFFF为2个字节,分别对应16路开关量的状态,为“1”时表示有电压输入。

写开关量状态 格式:字节数“D”“O”“N”“M”;响应:无;N(00H~0FH)表示通道号;M表示状态,0表示无输出;当N=FF时,表示对所有通道进行操作,此时M为16位(两字节)。

读A/D 格式:字节长“A” “I” “N”;响应:字节长 “A” “I” “N” “FFFF”;N为A/D通道号;FFFF为双字节,是A/D转换的结果,高4位在前,低8位在后。

写D/A格式:字节长 “D” “I” “N” “FFFF”;响应:无;FFFF为双字节,是D/A转换的结果,高4位在前,低8位在后。

读计数器 格式:字节长 “T” “I”;响应:字节长 “T” “I” “FFFF”;FFFF为计数结果。

启动计数功能 格式:字节长 “T” “S”;响应:无,在此协议的基础上,我们还可以设置一些其它指令,但需要在控制卡运行相应的程序。

应 用

本控制卡价格低廉,使用方便,无需打开计算机装卡。这样,在工业控制现场,用一台笔记本电脑就可以很方便地调试系统,且可以利用许多现成的串口通讯控件,如VB中的MSCOMM控件,VC中的Microsoft Communication Control这一Active类控件来很方便地编写应用程序。

推荐访问:板卡 接口 开发 RS