第二部分数字量I/O目录1 DO、DI硬件原理 22.1 CPC板的电路图 32.1.1 所用I\O口 42.1.2 485通讯口72.1.3 显示电路的设计82.1.4 晶振模块82.1.5 上层板的原件清单92.2 输入板I/O原理图 102.2.1 电路原理112.2.2 输入底板的原件清单122.3 输出板I/O电路图 132.3.1 反向驱动器ULN2003 芯片 14 2.3.2 输出底板的原件清单142.4 通讯部分153 DI、DO软件部分设计 163.1 通讯方式163.1.1 Modbus 协议 163.1.2 CRC校验173.1.3 莫尼康RTU 173.1.4 看门狗程序193.2 计算机界面的设计203.3 输入板的程序设计213.4 输出板的程序设计244 DI、DO的应用264.1 数字输入板的应用264.2 数字输出板的应用325. 数字量输入程序清单376.数字量输出程序清单 49硬件部分由程序下载口,状态显示,复位,信息通信,I/O口,AD,DA等几部分组成,软件部分采用MODBUS通信协议,CRC校验,看门狗程序,数据传送等部分组成。
1.DO、DI硬件原理输入板电路分为上层板电路和底板电路,其中上层板电路以Atmega128为核心,主要实现显示状态、控制端口、数据处理和通讯的功能。
设计如下:1.1CPU 板硬件原理图图2-2 输入输出上层板电路12345678161514131211109S15.1KRs 15.1K Rs 25.1K Rs 35.1K Rs 45.1K Rs 55.1K Rs 65.1K Rs 75.1K Rs 8P A 3P A 4P A 5P A 6P A 7P D 5P D 6P D 7VCC1.1.1所用I\O口AVR AT128共有53条I/O口,作为输入、输出口用32条,程序下载端口用PB0、PB1、PE1通讯端口用PD2、PD3通讯显示灯用PA2具体如下图所示:图1-3 I\O口的设计1.1.2R S23-485电路RS-232-C接口在总线上只允许连接1个收发器,即单站能力。
而RS-485接口在总线上是允许连接多达128个收发器。
即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。
所以电路中采用了RS232-485电路。
RS232-485转换器主要包括了电源。
232电平转换,485电路三部分。
本电路的232电平转换电路采用了NIH232或者也可以直接使用MAX232集成电路,485电路采用了MAX485集成电路。
为了使用方便,电源部分设计成无源方式,整个电路的供电直接从PC机的RS232接口中的DTR(4脚)和RTS(7脚),PC串口的每根线可以提供大约9mA的电流,因此两根线提供的电流足够供给这个电路使用了。
经实验,本电路只使用其中一条线也能够正常工作。
使用本电路需注意PC程序必须使串口的DTR和RTS输出高电平,经过D3稳压后得到VCC,经过实际测试,VCC电压大约在4.7V左右。
因此,电路中要说D3起的作用是稳压还不如说是限压功能。
MAX485是通过两个引脚RE(2脚)和DE(3脚)来控制数据的输入和输出。
当RE为低电平时,MAX485数据输入有效;当DE为高电平时,MAX485数据输出有效。
在半双工使用中,通常可以将这两个脚直接相连,然后由PC或者单片机输出的高低电平就可以让MAX485在接收和发送状态之间转换了。
由于本电路DTR和RTS都用于了电路供电,因此使用TX线和HIN232的另外一个通道及Q1来控制MAX485的状态切换。
平时NIH232的9脚输出高电平,经Q1倒相后,使MAX485的RE和DE为低电平而处于数据接收状态。
当PC机发送数据时,NIH232的9脚输出低电平,经Q1倒相后,使MAX485的RE和DE为高电平而处于数据发送状态。
RS232-485电路图如图2-3所示。
图2-3 RS232-485电路图1.1.3485通讯口图1-4通讯模块的设计RS-485芯片内部含有一个接收器输出端(1脚RO)、驱动器输入端(4脚DI),与单片机连接时只需分别与单片机的RXD和TXD相连即可。
本设计中RO端和DI端通过一个2K的电阻和发光二极管接+5V电压显示了接受和发送状态。
RE和DE端分别为接收和发送的使能端,当RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,采用屏蔽双绞线就可以连接多达128个收发器设备,组成半双工控制网络。
A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0,与单片机相连时RS-485的A、B端一般一般可选100Ω的电阻。
图中的J3排针为与底板的连接口,二极管D1起到稳压作用,防止上电时电压过高烧坏芯片。
1、485芯片使能的设计RS-485芯片是工作在半双工状态,所以接受和发送的使能端一起接到三极管8550的集电极。
2、8550作用:8550PNP三极管集电极与单片机的TXD端相接,通过三极管的开关作用来触发其接收发送使能。
1.1.4 显示电路的设计发光二极管共阳极接,任意输入端口为低电平,对应的灯就会亮,电阻的大小是根据发光二极管的压降(一般为1.5--2V ,其工作电流一般取3-5 mA 为宜)而选择的。
图1-5 显示状态的设计1.1.5 晶振模块晶体振荡电路:XTAL1与XTAL2分别为用作片内振荡器的反向放大器的输入和输出,这个振荡器可以使用石英晶体,也可以使用陶瓷谐振器。
熔丝位CKOPT 用来选择这两种放大器模式的其中之一。
C1和C2的数值要一样,不管使用的是晶体还是谐振器。
最佳的数值与使用的晶体或谐振器有关,还与杂散电容和环境的电磁噪声有关。
1-6晶振电路的设计1.1.6CPU板的原件清单1.2输入板底板原理图图1-7 输入I/O 板电路123456789J1A BDO模块以ATmega128L为核心。
其中32条口线定义为输出口线,外接光电转换器保证其外部电路为标准24V直流供电,内部使用高质量DCDC电源转换提供5w以上的电源保证芯片的正常运行。
其串口设为RS485接收状态,使用485发送接收核心芯片,可以提供高阻抗系统,保证电平输出的有效性。
并且以MODBUS协议为数据载体,使数据的可靠性得到充分的保证。
1.2.1电路原理图1-8输入底板的设计根据光耦的导通原理,当D2、D3的端接入24V地低电平时,接通发光源的左边电路就会导通,发光二极管发光,此时,受光器就会导通产生电流。
由于受光器的导通后的电阻很小可以忽略,使in24、in25端相当于直接连接5V高电平,即把有效的高电平数据信号传入上层板单片机,并作处理。
同时外界对应的指示灯点亮。
同理,当D2、D3端接入24V时,发光源不导通,不会发光,受光器就不会产生光电流,使in24、in25端相当于直接连接(5V地)低电平,此时和没有工作时的状态是一样的,单片机不处理数据。
1、光电耦合器电路的设计光电耦合器又电平转化的作用,输入端的10K电阻为发光源内部的发光二极管提供正常的工作电压1.5-2V,工作电压3-5mA,输出端口的电阻4.7k为上拉电阻。
2、光电耦合器输入端口的滤波器输入口1K的电阻和0.1uf的电容组成RC滤波器,对电源进行滤波。
1.2.2输入I/O板的原件清单1.3输出底板电路图图1-9 输出板底板的设计123456789J1A B 00010203040506070809101112131415161718192021222324252627282930310.1uFC70C71C72C73C74C75C76C77C78C79C80C81C82C83+24V 0.1uF C86C87C88C89C90C91C92C93C94C95C96C97C98C99+24VC84C85C100C101O00O01O02O03O04O05O06O07O08O09O10O11O12O13O14O15O16O17O18O19O20O21O22O23O24O25O26O27O28O29O30O3147uFC102+24V光电隔离管PC817将24V信号源与5V信号源隔离开来,当5V信号输出端口为低电平,即相应状态指示灯亮,光电隔离管右端通过2003芯片任意端口接外部回路就会导通。
对应的5V信号端为低电平,上层板对应指示灯亮。
单片机输出PC机命令控制外部继电器的通断。
1.3.1反向驱动器ULN2003 芯片图1-10 芯片2003在电路中的连接ULN2003是驱动集成电路,它起反向驱动放大作用.可以解决控制芯片输出的负载能力太低的问题,最大驱动电压=50V,电流=500mA。
1.3.2输出I/O板的原件清单1.4 通讯部分本设计的通信部分采用MODBUS 协议中的RTU 模式,采用CRC 校验和看门狗程序,PC 与PLC 之间采用RS232转RS485通信,PLC 与PLC 之间采用RS485通信, 下图为RS-485与ATmega128单片机及PC 机的典型连接示意图。
2DI、DO软件部分设计2.1通讯方式2.1.1M odbus 协议串口通信采用MODBUS协议RTU方式,制定了消息域格局和内容的公共格式。
当在Modbus网络上通信时,此协议决定了每个控制器的设备地址,识别按地址发来的消息。
如果需要回应,控制器将生成反馈信息,并用Modbus协议发出。
1、在Modbus网络上转输标准的Modbus口是使用RS-232C兼容串行接口,它定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。
MODBUS-RTU协议的命令子集,(莫迪康只遵循读(02)写(05)和读写(01)命令)。
控制器通信使用主—从技术,即一个设备(主设备)能初始化传输(查询),其它设备(从设备)根据主设备查询提供的数据作出相应反应。
主设备单独和从设备通信,从设备返回一消息作为回应, Modbus协议建立了主设备查询的格式,即计算机发送命令:[设备地址] [命令号01] [起始寄存器地址高8位] [低8位] [读取的寄存器数高8位] [低8位] [CRC校验的低8位] [CRC校验的高8位]从设备回应消息也由Modbus协议构成,设备响应的格式:[设备地址] [命令号01] [返回的字节个数][数据1][数据2]...[数据n][CRC校验的低8位] [CRC校验的高8位],如果在消息接收过程中发生一错误,或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。
例:计算机发送命令:[11][01][00][13][00][25][CRC低][CRC高]意义如下:<1>设备地址:在一个485总线上可以挂接多个设备,此处的设备地址表示想和哪一个设备通讯。