串行通信口

2024-09-26

串行通信口(精选9篇)

串行通信口 篇1

1 引言

移液器是实验室研究和工业生产中的一种较精确的分液设备,通过更换不同规格的取样嘴并对移液器实施通信控制,可完成液体的定量吸排。本文专门研究了西门子S7-200系列PLC和百得rLINE1000移液器进行自由口串行通信的方法,实现了PLC对移液器的通信控制,包括定量吸排和取样嘴弹出控制。

2 移液器的串行通信口

芬兰百得公司的r LINE1000线控移液器是一个由微处理器控制的系统,它具有优异的结构和极高的液体处理性能,移液准确,精密性高,并且可以通过计算机串口进行通信。百得rLINE1000移液器采用双排14引脚电缆连接器作为电源和通讯接口,其连接器信号如图1所示。

百得r LINE1000移液器的每个模块都配备了带有RS232驱动程序的通用串行接口。RS232接口由接收数据(接收数据RXD,引脚5),传输数据(发送数据TXD,引脚6)和接地信号(接地GND,引脚8)组成。其通信波特率可以在9600bps与115.2 kbps之间改变,但8位数据位、1位停止位和无奇偶校验是固定的。每个模块都必须使用相同的波特率。计算机等控制器可通过其RS232通讯接口向移液器发送ASCII码命令并接收移液器返回的ASCII码信息。通过PLC可编程控制器给移液器发控制命令实现定量吸液、定量排液和取样嘴弹出操作,其控制命令如表1所示。

上表中“I”字符代表吸取,“O”字符代表排除,其紧跟的后面三个字符代表体积量。

3 S7-200系列PLC的通信

S7-200系列PLC支持多种通信模式。点对点接口(PPI)、多点接口(MPI)、PROFIBUS、自由口串行通信等,它们都是基于字符的串行异步通信协议,带有起始位、8位数据、奇偶校验位(可选)和一个停止位。在自由口串行通信模式中,用户自定义与其他串行通信设备的通信协议,通过使用接收中断、字符中断、发送指令(XMT)和接收指令(RCV),实现S7-200PLC的CPU通信口与其它设备的通信。

通过将S7-200 PLC的特殊功能寄存器SMB30和SMB130的协议选择域置1,将通信端口设置为自由口通信模式。SMB30用于设置端口0的通信波特率和奇偶校验的参数,SMB130用于设置端口1的通信波特率和奇偶校验的参数(见表2)。

通过向SMB30或SMB130(SMB30用于设置端口0,而SMB130用于设置端口1)的协议选择位置1,可以将通信端口置为自由口通信模式。SMB30或SMB130还用于设置通信波特率、奇偶校验位、数据位。只有PLC处于R U N模式时,才能使用自由口通信模式,当C P U处于STOP模式时,自由口模式被禁止,自动进入PPI模式,可以与编程设备通信。为保证CPU处于RUN模式时进入自由口通信,可以采用S7-200 PLC的特殊寄存器位SM0.7来控制自由口通信方式的进入,当SM0.7为1时,CPU处于RUN模式,进入自由口通信模式。

在自由口通信模式下发送指令XMT将数据缓冲区(TBL)的数据通过指定的通信端口(PORT)发送,TBL指定发送区的格式如图所示,起始字符和结束字符是可选项,第一个字节“字符数”是要发送的字节,它本身并不发送出去。发送指令XMT可以方便的发送1~256个字符,如果有中断程序连接在发送结束事件上,则在发送完数据缓冲区的最后一个字节后,端口0会产生中断事件9,端口1会产生中断事件26。可以监视发送状态完成状态位SM4.5和SM4.6的变化。

接收指令RCV可以方便的接收一个或多个字符,最多接收255个字符,如果有中断程序连接到接收结束事件上,在接受最后一个字符时,端口0产生中断事件2 3,端口1产生中断事件2 4。可以监视S M B 8 6或S M B 1 8 6的变化,而不是通过中断进行报文接收。SMB86或SMB186位非零时,RCV指令未被激活或接收已经结束。在自由口通信模式下接受指令RCV通过指定的端口(PORT),将接收的数据信息存储在数据缓冲区(TBL)中。

4 移液器和S7-200 PLC的串行通信

如何实现S7-200PLC对百得rLINE1000移液器的控制并进行数据的采集和处理是研究的重点和难点。百得rLINE1000移液器通讯接口为RS232方式,不宜远距离传输,而通过有源模块RS232/RS485转换后,将RS232信号转换为RS485信号,即完成与S7-200 PLC的RS485信号进行通信,可实现远距离信号传输。

在S7-200 PLC的自由口通信模式中,用户可以定义通信口的波特率、每个字符的位数、奇偶校验等参数发送数据。根据实际情况的需要,将S7-200PLC和百得rLINE1000移液器之间的通信协议数据设置为波特率9600,数据位8位,1位停止位,无校验位。并通过自由口通信发送命令实现定量吸液、定量排液和取样嘴弹出操作等。

将百得rLINE1000移液器和S7-200 PLC之间通过一个R S 2 3 2转R S 4 8 5模块,实现了两者之间的硬件连接。

5 S7-200 PLC的发送和接收程序

S7-200 PLC的发送程序分为设置其自由口通信参数的程序,并发送移液器能够接收的定量吸液、定量排液和取样嘴弹出操作的命令,该程序通过S7-200 PLC的特殊功能寄存器SM0.1上电初始化完成。

系统上电后,S7-200 PLC写入其自由口通信的各个参数,设置为串口1通信,波特率为9 6 0 0,数据位8位,无校验位,1位停止位,使其与百得rLINE1000移液器的通信方式一致。并且发送接收信息的控制字节,程序如下:

6 结束语

在实际调试过程中,首先利用了串口调试助手将计算机与百得r LINE 1000移液器连接调试,然后将S7-200PLC与移液器连接,进行串行通信控制,实现了液体的定量吸排和取样嘴弹出操作。

摘要:本文研究了西门子S7-200系列PLC和百得rLINE1000移液器进行自由口串行通信的方法,通过RS485/232有源通信转换模块将S7-200 PLC与移液器连接,通过对移液器的通信控制,实现了液体的精确定量吸排和取样嘴自动弹出操作。

关键词:移液器,PLC,串行通信,定量控制

参考文献

[1]张万忠,刘明芹.电器与PLC控制技术[M].北京:化学工业出版社,2003.

[2]沈世斌等.基于PLC自由口通信的应用[J].仪表技术与传感器,2004,(12):26-28.

[3]李臣友.论S7—200系列PLC自由口通信的实现[J].计算机工程应用技术2010,(7):5915-5916,5919.

串行通信口 篇2

1.掌握串行口工作方式的程序设计,掌握单片机通讯的编制。

2.了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议。3.了解PC机通讯的基本要求。二.原理说明

1.MCS-51单片机的串行接口有四种通信方式。其中方式1的波特率由定时器1的计数溢出来决定,用公式表示如下:

若已知晶振频率,则可以通过设置定时器计数初值来确定波特率; 2.当用GR命令执行程序时,实验机内部会将8031串行口电路切换与PC机通讯,无须连线; 3.程序执行前,进入LCA51,加载程序后,才进入调试菜单工具中的对话窗口,然后执行GR0,就可实行单片机串行口与PC机通信实验。三.实验设备

1.单片机开发学习板。2.PC机及配置要求如下:

①IBM PC机或兼容机(586及以上机器); ②安装有Windows9x或更新的版本;

③PC机要求有一个空余的25芯(或9芯)串行通信口。四.实验内容

利用51单片机串行口,实现与PC机通讯。

本实验实现以下功能,将从实验机键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符0-F(必须为大写字母)显示到实验机的数码管上。五.实验电路及连线

实验电路已在实验机监控电路上构成。

CS8279已固定接至8700H,无须再接。模块中的十个短路套都套在8279侧; 8279状态口地址为8701H; 8279数据口地址为8700H; 六.实验程序框图

串行通信口 篇3

一、自由口通信模式概述

西门子S7-200PLC的通信端口有PPI模式和自由口模式这两种常用的通信模式。其中PPI模式通信协议是西门子公司根据S7-200PLC的特点专门开发的, 一般情况下只对西门子内部生产的产品使用。与PPI模式完全不同的是自由口模式, 它完全对外开放, 在这种模式下, 用户可以根据自己的需要对通信协议进行定义。

目前, 许多公司使用的第三方设备都支持自由口通信模式。西门子S7-200PLC可以通过选择自由口通信模式的方式达到控制串口通信的目的。而且, 利用自由口通信模式可以使计算机与S7-200PLC之间的通信变得更加稳定和高效。

西门子S7-200PLC为了实现自由口模式的通信功能, 使用的寄存器主要有SM130、SMB30以及具有特殊功能的寄存器。用户可以利用这些寄存器来设置系统的通讯方式, 并利用它们对系统进行有效管理。S7-200PLC与计算机在通信过程中, 为了防止通信道的拥挤, 一般会将计算机和PLC分成主机和从机两部分, 从机不能越过主机发送信息。自由口通信模式除了在计算机和PLC之间使用之外, 还可以在PLC与PLC之间使用。

二、西门子S7-200PLC自由口串行通信的实现

在自由口串行通信模式中, 用户可以自行对系统的奇偶校验等参数进行设置, 并通过发送/接收终端、发送/接收指令等操作来实现对通信端口的控制。用户通过发送指令可以使发送数据区的数据得到激活, 数据缓冲区的首数据表明了发送指令的长度, 数据缓冲区的容量可以达到255个字符, 当指令发送完成后程序自动中断。接收指令可以使数据实现初始化或使接收信息过程中断, 存储在缓冲区信息的最大容量为255个字符。在接收指令的过程中, 如果有一个程序接受完成, 则在接收的最后一个字符后面生成中断程序。由于自由口串行通信协议可以支持多种形式的数据通信, 因此, 用户可以利用控制字符的中断与否来控制数据的接收。

计算机与S7-200 PLC自由口串行通信的实现是利用计算机来发出操作指令, S7-200PLC在接到计算机发送的命令后根据命令做出响应。在计算机与S7-200PLC自由口串行通信实现的过程中, 由于PLC采用的485端口的串行通信标准是半双工模式的, 在这种模式下S7-200PLC发送命令和接收命令的操作不能同步实行, 否则会出现通信错误从而造成严重的后果。因此, 自由口串行通信模式在制定的过程中, 要将发送命令和接收命令的操作分割开来, 避免两个命令同时执行。S7-200 PLC作为响应命令的下位机, 在通信过程中接收到命令之后首先要判别命令的地址码是否与本机地址码相符。只有在地址码相符的情况下, 上位机和下位机才能实现通信。如果地址码与本机不符, 则继续执行扫描通信数据的操作。S7-200 PLC在接收到结束符之前, 必须对接收到的每个字符进行甄别, 以判断其是否为结束符。自由口串行通信的软件设计中, 主要的设计部分为PC软件和PLC梯形图。

三、结语

西门子S7-200 PLC利用自由口串行通信实现数据信息的交换, 其不仅具有功能完备、价格低廉等优点, 而且支持多种形式的通信模式。S7-200 PLC在工业自动化领域的广泛应用, 很好地解决了工业控制系统中数据采集和数据分析的难题, 大大降低了企业控制系统研发的费用, 使工业自动化的程度大大提高。

参考文献

[1]许毅, 熊文龙, 雷静.基于PC与S72200实现自由通信协议的研究[J].武汉理工大学学报:交通科学与工程版, 2002, 26 (4) :513-515

[2]李臣友.论S7—200系列PLC自由口通信的实现[J].计算机工程应用技术2010, (7) :5915-5916, 5919

单片机串行通信实验 篇4

一、实验目的

1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。

2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。

3、学习串口通讯的中断方式的程序编写方法

二、实验说明

利用单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。发送方读入按键值,并发送给接收方,接收方收到数据后在LED上显示。

三、实验仪器

计算机

伟福实验箱(lab2000P)

四、实验内容与软件流程图 1、8051的RXD、TXD接线柱在POD51/96仿真板上。

2、通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD上,这样按下的键,就会在本机LED上显示出来。

3、若想与标准的RS232设备通信,就要做电平转换,输出时要将TTL电平换成RS232电平,输入时要将RS232电平换成TTL电平。可以将仿真板上的RXD、TXD信号接到实验板上的“用户串口接线”的相应RXD和TXD端,经过电平转换,通过“用户串口”接到外部的RS232设备。可以用实验仪上的逻辑分析仪采样串口通信的波形

4、软件流程图

5、实验电路连接方式

①双机串行通信方式。TXD脚和RXD脚分别用于发送和接收数据。

②单机通信的情况下,只需将自己的TXD脚与RXD脚连接就可以,不用公地操作。

五、思考题

1、接收到的数据加1显示出来;

2、保存前一个接收到的数据,数据向前推动显示。

六、源程序修改原理及其仿真结果 实验结果图 源程序:

加1显示:

接收到的数据先前推送:

七、心得体会

串行通信口 篇5

随着单片机开发技术的不断发展, 从普遍使用汇编语言到逐渐使用高级语言开发, 单片机的开发软件也在不断发展, Keil软件是目前最流行开发MCS-51系列单片机的软件, Keil软件在调试程序时提供了多个窗口, 主要包括输出窗口 (Output Windows) 、观察窗口 (Watch&Call Statck Windows) 、存储器窗口 (Memory Window) 、反汇编窗口 (Dissambly Window) 串行窗口 (Serial W indow) 等。进入调试模式后, 可以通过菜单View下的相应命令打开或关闭这些窗口。

下面设计串口发送和接收的例子说明K eil串行窗口的应用。

1、串口发送

建立新工程, 保存为serial Send, 编写实验程序。编译程序通过后, 点击工具栏上的“调试”按钮, 进入调试状态。点击调试窗口的串行窗口按钮打开串口1窗口。此时两个窗口可能重叠在一起, 可以点击“窗口|水平排列”使之都可见。主要程序如下:

点击菜单栏上的“外围设备|serial”调出串行口, 如图1:

可以看到串行口寄存器SCON的初值以及各标志位的值, SBUF的初值。初始运行的时候TI和RI都是为0, 在执行while (!T I) 或while (!RI) 会一直等待。所以要勾选TI或RI位使之为1。我们按F10执行单步运行在#1串行窗口可以看到发送的字符。在窗口内鼠标右击还可以选择十六进制数还是ASCII码字符显示。

2、串口接收

我们可以直接在串行窗口中键入字符, 该字符虽不会被显示出来, 但却能传递到仿真CPU中, 如果仿真CPU通过串行口发送字符, 那么这些字符会在串行窗口显示出来, 用该窗口可以在没有硬件的情况下用键盘模拟串口通讯。

建立新工程, 保存为serial Rec, 编写实验程序。编译程序通过后, 点击工具栏上的“调试”按钮, 进入调试状态。打开串口1窗口。主要程序如下:

该程序实现一个通过键盘控制点亮某一个灯的功能, 键入一个0—5的数字, 会立即回显到窗口中, 并且使P1口的某个位为低电平点亮相应的发光二极管。

程序是通过检测RI是否等于1来判断串行口是否有字符输入, 如果有字符输入, 则将其送到变量str中, 然后交给函数deel去处理也即根据输入的字符使P1口变化。但是从键盘输入的这个字符如果没有发送就不会在串行窗口中显示出来。所以还必须将字符在送到SBUF中等待发送出去。

我们按F5全速运行程序, 按键盘上的数字或者字符可以看到在串行窗口1中有相应的字符显示。为了看到P1口的变化情况我们选择“外围设备|并行口1”调出P1口的状态寄存器。按数字0—5相应的P1口的位为低电平, 按其他的字符P1口没有变化。

由于部份CPU具有双串口, 故Keil提供了两个串行窗口, 我们选用的89C51芯片只有一个串行口, 所以Serial 2串行窗口不起作用。

3、结语

由于串口程序需要实际硬件连接才能看到程序结果是否正确, 在实际教学当中由于条件和时间的限制所以使用仿真调试是很好的解决方法。本文讨论了通过Keil软件来模拟调试串口程序, 学会使用Keilc软件的高级调试功能对单片机开发是非常重要的。

摘要:由于串行通信硬件成本低, 传输线少, 适合于长距离数据传输所以在实时控制和管理方面, 采用多台微机处理机组成分级分布控制系统中, 各CPU之间的通信一般都是串行方式。但是单片机的串口通信不好硬件仿真。为了能够方便的看到单片机串行通信的实际效果, 利用Keilc软件进行模拟调试不失为一个好的方法。

关键词:串行通信,模拟调试,仿真,调试窗口,串口控制寄存器

参考文献

[1]何力民《.单片机应用系统设计》[M].北京航空航天大学出版社, 1995.

[2]《C51教程》[J].电子报, 2005.

串行通信口 篇6

AT89C51与其外围设备的基本通信有两种模式:并行通信模式和串行通信模式。采用AT89C51并行通信模式时, 诸如通过并行输入/输出口P1控制交通灯, 所有数据位通过并行输入/输出口P1进行输出。并行通信模式的优点是数据传送速度快, 所有的数据位同时传输;缺点是电路较多, 一个并行的数据有多少位, 就需要少条传输线, 传输的距离较近。采用串行通信模式时, 所有的数据位按一定的顺序, 通过两条传输线按位传输。串行通信模式的优点是电路简单, 仅需要两条传输线, 传输距离相对较远, 缺点是数据传送速度慢。

数码管需要接8个脚才能显示, 如果用单片机AT89C51本身的I/O口, 虽可以但浪费宝贵的I/O口资源。文章采用串入并出移位寄存器74HC164作为数码管驱动芯片进行控制。节省了AT89C51的I/O口资源。

2 串行口硬件设计

2.1 74LS164的基本结构

74LS164是高速硅门CMOS器件, 与低功耗肖特基型TTL (LSTTL) 器件的引脚兼容。是8位边沿触发式移位寄存器, 串行输入数据, 然后并行输出。74LS164引脚图如图1所示, 数据通过两个输入端 (A或B) 之一串行输入;任一输入端可以用作高电平使能端, 控制另一输入端的数据输入。两个输入端或者连接在一起, 或者将不用的输入端接高电平, 需要注意的是一定不能悬空。

74LS164的引脚逻辑功能如表1所示。时钟CLK每次由低变高时, 数据右移一位, 输入到QA, QA是两个数据输入端 (A和B) 的逻辑与的输出端。当清除端 (CLR) 为低电平, 输出端 (Q A-Q H) 均为低电平;串行数据输入端 (A, B) 可控制数据。当A, B任意一个为低电平, 则禁止新数据输入, 在时钟端 (CLK) 脉冲上升沿作用下QO为低电平;当A, B有一个为高电平。则另一个就允许输入数据, 并在CLK上升沿作用下决定QO的状态。

2.2 串行口控制数码管的硬件设计

串行通信模式可以分为两种模式:同步通信模式和异步通信模式。AT89C51单片机提供同步通信模式和异步通信模式两种串行通信模式。同步通信模式要求时钟更为严格。异步通信模式工作在UART (Universal Asynchronous Receiver and Transmitter) , 可以同时进行数据的发送和接收, 只是时钟要求没那么严格。AT89C51串行通信大多异步通信模式, 采用本次也采用异步通信模式。

AT89C51串行口的工作可以被分为4种工作方式。串行口工作方式0为同步移位寄存器方式。在这种方式下, 串行数据的发送和接收都是通过管脚RXD进行, 管脚TXD用来传送同步移位脉冲。串行数据一帧的数据位数为8位, 传输时低位在前, 高位在后。数据传输的波特率是固定的, 为单片机时钟频率的1/12。如果单片机的时钟频率为12MHz, 则数据传输的波特率是1MB。串行口工作方式0的数据传输波特率不受电源控制寄存器 (PCON) 中SMOD位的影响。本文是利用串行口工作方式0实现数码管的显示, 串行口控制数码管的硬件设计如图2所示。

显示代码的最低位数据是从AT89C51的管脚RXD送到74LS164的管脚A和B, 随后同步移位脉冲从AT89C51的管脚TXD送到74LS164的管脚CLK, 在同步移位脉冲上升沿的作用下, 显示代码的最低位数据被移入74LS164的管脚QA。第2个同步移位脉冲的上升沿接着把代码的最低位数据移入74LS164的管脚QB。将跟着最低位的数据移入74LS164的管脚QA。依次类推, 8个同步移位脉冲完成把整个显示代码移入74LS164的输出管脚, 其中最低位在管脚QH, 最高位在管脚QA。串/并转换的整个过程需要8个单片机机器周期。如果单片机的时钟频率为12MHz, 该过程需要8us。在转换过程的8us中, 数码管的显示是不断变化的错误信息, 但是这个时间很短, 微秒级的, 人眼分辨不出这个变化。

3 串行口控制数码管系统软件设计

AT89C51单片机串行移位通信的接收部分具有缓冲能力, 即已经接收到的第一个字节在被读取之前就可以开始接收第二个字节。但是值得注意的是, 如果第二个字节完成接收, 而第一个字节仍没有被读取, 第一个字节的数据将丢失。串行输入/输出具有独立的发送和接收缓冲寄存器, 它们共同被称作是串行数据缓冲寄存器SBUF, 并占用特殊功能寄存器的同一个地址99H。发送缓冲寄存器只能写入, 不能读出, 接收缓冲寄存器只能读出, 不能写入, 因此它们的区分可以通过指令来实现。串行输入/输出的数据使用管脚RXD (管脚10) 和管脚TXD (管脚11) 可以同时接收和发送数据。

串行口控制数码管系统程序如下:

参考文献

[1]卢易枫.子弹测速系统设计[J].工业控制计算机, 2006, 19 (1) .

[2]李小强, 屈芳升.单片机应用技术[M].郑州:河南科学技术出版社, 2011.

串行通信口 篇7

关键词:串行通信,RS232,TCP/IP,以太网

1 引言

随着网络技术的发展,以太网和TCP/IP在工业控制领域得到了越来越广泛的应用。利用网络进行远程监控是当前工业控制和安防领域以及多媒体娱乐点播等领域的发展方向[1],而目前实际现场节点(如电力系统状态监控点,各种工业终端控制系统,视频摄像头,温湿度监测点等)只具备RS232接口,需要RS232接口转换到以太网,以适合整个日趋完善的网络通讯平台,同时也能克服RS232接口数据传输距离过近的缺点。为实现串口传输的数据能够在网络上处理,本文基于C8051F340微控制器设计了串行口和以太网口转换器,实现通过网络对串口接受到的数据进行处理。

2 串行口/以太网口转换器

C8051F340的性能基本能满足一般工业,安防及一般数据传输的以太网应用。为提高数据通讯的可靠性,选择TCP作为以太网侧的通讯协议,数据以帧结构(而不以单字节)进行通讯,保证了数据的完整性,RS232侧用累加校验的方法保证数据的正确。

转换器的主要功能如下:1)当远程设备通过本设备与被控制设备建立网络连接后,远程设备通过该该转换设备将数据发送到串口,来直接控制被控设备,同时被控设备可以做出相应的回应,将处理好的数据发送给远程设备。2)该设备作为服务器开启后接受任何有权限的设备的主动连接,并发送从被控设备得到的数据作为校验。3)用户可以通过设计好的相应的桌面应用程序对串行口的相关参数(如数据位,波特率等)进行修改。4)具有网络自恢复功能,当程序发现链路失败或RS232线路失败时,由软件进行重新设置状态信息(RE-SET)。Watchdog功能监控程序跑飞,时钟监控可防止死机情况的发生。5)通过RS232通讯口可设置目的IP地址和端口号,以及源IP地址及网关地址,也可选择自动获取地址方式。

3 硬件设计

本设计的微控制器MCU选用C8051F340,RS232的电平转换采用MAX232,网络控制器采用CP2200。具体设计结构如图1所示。整体数据的传送过程是:RS232发送数据到MCU,MCU将接收的数据发送到网口;网口可以将数据发送到MCU,MCU再将数据发送到RS232串口。这样就实现了网络上的数据与RS232的串口数据进行交换,实现通信的目的。本设计的转换器可以将数据从串口发送到网口,同时也可以将数据从网口发送到串口,实现双工通信。

由于串口接受的信号和计算机处理的信号电压不一致,需要进过电平转换电路的处理才能通过MCU进行数据传输[2],如图2所示。RS232转换器主要包括了电源、232电平转换、232电路三部分。本电路的232电平转换电路采用了MAX232C集成电路,为了使用方便,电源部分设计成无源方式,整个电路的供电直接从PC机的RS232接口中的DTR(4脚)和RTS(7脚)获取。PC串口每根线可以提供大约9mA的电流,因此两根线提供的电流足够供给这个电路使用。通过图2的电平转换电路可以有效的实现串口接收信号与计算机处理信号的转换,实现通过MCU进行数据传输。

CP2200是以太网控制器[3],MCU通过CP2200实现数据通过网进行传输,CP2200再接到RJ45水晶头,实现和其他带有网口的设备进行连接。CP2200和RJ45的连线图如图3所示。

4 软件设计

4.1 RS232与MCU通信的实现

RS232通过电平转化电路后,可以接到MCU的端口上,就可以进行数据传输[4]。要对串口进行操作首先要进行串口初始化,设置其工作方式,以及相应的参数,如波特率,数据位等。本设计中使用的是C8051F340MCU,该MCU有两个串口,UART0和UART1。选用UART0,串口使用中断的方式来收发数据。该串口有SBUF0数据收发中转器,可以接受、发送数据。当有接受数据写入该串口时RI0相应被置位,同时接受8位数据位到缓冲区,结束位存入相应的控制位中,如此反复执行,直到接受数据结束为止。MCU发送数据到串口的处理流程与串口发送到MCU的处理流程基本一致。如使用以下代码即可实现串口数据的接受和发送。

MCU与串口通信实现通过逐个字节读取方式实现,每读取或发送数据后都要将中断标志位的值进行设置。

4.2 MCU与网口通信的实现

MCU和网口之间可以通过已经封装好的对网络操作的API来实现。运用mn_init()初始化网络连接,mn_open()打开socket建立网络连接,mn_send()函数可以通过网口将MCU的数据发送给建立socket连接的客户端,mn_recv()函数调用后MCU可以接受客户端通过网口发送的数据,最后在要关闭网络连接时调用mn_close()函数就可以了。以下给出简单的MCU发送数据的例子:

4.3 RS232与网口之间通信的实现

RS232/Ethernet接口转换可以方便地将串行设备连接到具有以太网接口的TCP/IP网络上,这样可以通过网络服务来对串口进行配置管理。在将串口发送的数据传送给网口的时候,要注意串口数据的格式和网络数据格式不一致。以太网是按包操作,即每次接受可以得到一个完整的数据包;每次发送可写入一个完整的数据包。而串口的每次操作只能得到一个字节;每次发送操作,只能写入一个字节。

单片机从串行设备中接受到的串行数据帧存储在接收缓冲区中,串口接收到来自计算机的命令后就调用该函数从接口缓冲区中读取一个数据包,再通过以太网口发送给计算机,如此就可以实现串行口和以太网口的数据传输了。在接受串口发送的数据时,先将起始位去掉,保存数据位到单片机的缓冲区,然后就可以将数据转发给网络接口,否则会造成因编码格式不同的乱码现象。

5 结束语

该文介绍的嵌入式RS232/Ethernet接口转换器具有体积小、功耗低等特点,最重要的是它实现数据从串口到网口的透明转换,解决了工业控制中串口传输距离短等缺点。通过该接口转换设备,使那些只具有串口的设备可以方便地实现了网络访问功能,同时可以解决串口设备之间数据共享的问题,更好地对多个相关联设备进行控制。

参考文献

[1]万冬云.嵌入式网络中WEB SERVER的实现[J].微计算机信息,2004(11):85-87.

[2]蔡宁果,何晓琼.用8位单片机实现串口一以太网转换器[J].电子技术应用,2002(2):14-16.

[3]User Manual of cp220/1.http://www.silabs.com.

常用串行数据通信接口浅析 篇8

一、数据线通信基本原理和特点

通信接口一般有并行通信接口和串行通信接口两种。并行通信方式的并行数据通信是以字节为单位的数据传输方式, 除了8根或16根数据线、一根公共线, 还需要通信双方联络用的控制线。其特点是传送速度快, 传送线根数多;但是, 抗干扰能力差, 一般用于短距离数据传送。串行通信方式的串行数据通信是以二进制的位 (bit) 为单位的数据传输方式, 每次只传送一位, 最少需要两根线 (双绞线) 就可以连接多台设备, 组成控制网络。其特点是串行通信需要信号线少, 具有一定抗干扰能力, 适用于距离较远的场合。计算机和PLC都有通用的串行通信接口, 两者连接方便, 为数据传送和网络化远程控制提供良好的环境条件, 而且工业控制计算机之间的通信一般采用串行通信方式, 所以, 串行通信广泛用于自动化控制系统。

串行口通讯的工作过程, 1.接收数据的过程。通信时, 首先确定串行口的工作状态, 当REN为1时, RXD端允许串行口接收串行数据;当REN为0时, 禁止串行口接收数据。所以通讯时该口处于允许接受数据状态;其次, 在接收端收到一个起始信号 (低电平信号) 后, 数据采样、接收标志位置位, 向CPU发出中断申请, CPU响应中断, 取走数据, 经清零后完成一帧数据的接收。接着启动下一轮的输入过程, 直到所有数据输入完毕。2.发送数据的过程。CPU发送数据时, 在发送控制器的作用下, TXD端首先发送一个起始信号, 其次由低到高逐位发送数据, CPU发出中断申请, 完成一帧数据发送。CPU响应中断, 接着启动下一轮的发送过程, 直到所有数据发送完毕。

二、常用串行通信数据接口线的工作方式

1. RS-232C。

RS-232C是RS-232发展而来, 是美国电子工业联合会 (EIC) 在1969年公布的通信协议, 至今任在计算机和其它相关设备通信中得到广泛使用。当通信距离较近时, 通信双方可以直接连接, 在通信中不需要控制联络信号, 只需要3根线, 即发送线 (TXD) 、接收线 (RXD) 和信号地线 (GND) , 便可以实现全双工异步串行通信。工作在单端驱动和单端接收电路。计算机通过TXD端子向PLC的RXD发送驱动数据, PLC的TXD接受数据后返回到计算机的RXD数据端子保持数据通信。如图1所示, 由系统软件通过数据线传输数据;如“三菱”PLC的设计编程软件FXGP WIN-C和“西门子”PLC的STEP7-Micro/WIN32编程软件等可方便实现系统控制通信。其工作方式简单, RXD为串行数据接收信号, TXD为串行数据发送信号, GND接地连接线。其工作方式是串行数据从计算机TXD输出, PLC的RXD端接收到串行数据同步脉冲, 再由PLC的TXD端输出同步脉冲到计算机的RXD端, 反复同时保持通信。从而实现全双工数据通信。

2. RS-422A。

RS-422A采用平衡驱动、差分接收电路, 如图2所示, 从根本上取消信号地线。平衡驱动器相当于两个单端驱动器, 其输入信号相同, 两个输出信号互为反相信号。外部输入的干扰信号是以共模方式出现的, 两根传输线上的共模干扰信号相同, 因此接收器差分输入, 共模信号可以互相抵消。只要接收器有足够的抗共模干扰能力, 就能从干扰信号中识别出驱动器输出的有用信号, 从而克服外部干扰影响。在RS-422A工作模式下, 数据通过4根导线传送, 因此, RS-422A是全双工工作方式, 在两个方向同时发送和接收数据。两对平衡差分信号线分别用于发送和接收。

3. RS-485。

RS-485是RS-422A的基础上发展而来的, RS-485许多规定与RS-422A相仿;RS-485为半双工通信方式, 只有一对平衡差分信号线, 不能同时发送和接收数据。使用RS-485通信接口和双绞线可以组成串行通信网络, 如图3所示。工作在半双工的通信方式, 数据可以在两个方向上传送, 但是同一时刻只限于一个方向传送。计算机端发送PLC端接收, 或者PLC端发送计算机端接收。

三、性能参数分析

1. 主要参数含义。

(1) 传输距离, 信号传递中不衰减的最小距离, 反映信号传输距离的基本性能。在选择中分为近距离数据线和远距离线, 在实际中视具体情况而定。 (2) 数据传输速率是指单位时间内, 在数据传输系统的相应设备之间实际传递的平均数据量, 或者说单位时间内传输的信息量, 又称有效数据传输率, 单位:b/s或Mb/s;数据传输数据反映了终端设备之间的信息传输能力, 是衡量系统传输性能的主要指标, 实际中数据传输速率越高越好。 (3) 输入输出阻抗, 要求数据线输入阻抗要高, 信号损失小, 输出阻抗要低, 带负载能力强。 (4) 输入电压阀值, 即数据线接口工作的最低电压。

2. 三种通信接口数据线性能参数比较。详见表1。

四、接口应用

1. RS-232/232C

RS-232数据线接口简单方便, 但是传输距离短, 抗干扰能力差。为了弥补RS-232的不足, 改进发展成为RS-232C数据线, 典型应用有:计算机与Modem的接口, 计算机与显示器终端的接口, 计算机与串行打印机的接口等。主要用于计算机之间通信, 也可用于小型PLC与计算机之间通讯。如三菱PLC等。

2. RS-422/422A,

RS-422A是RS-422的改进数据接口线, 数据线的通信口为平衡驱动, 差分接收电路, 传输距离远, 抗干扰能力强, 数据传输速率高等, 广泛用于小型PLC接口电路。如与计算机链接。小型控制系统中的可编程序控制器除了使用编程软件外, 一般不需要与别的设备通讯, 可编程控制器的编程接口一般是RS-422A或RS-485, 用于与计算机之间的通讯;而计算机的串行通讯接口是RS-232C, 编程软件与可编程控制器交换信息时需要配接专用的带转接电路的编程电缆或通讯适配器。网络端口通讯, 如主站点与从站点之间, 从站点与从站点之间的通讯可采用RS-485。

3. RS-485是在RS-422A基础上发展而来的;

主要特点, (1) 传输距离远, 一般为1200m, 实际可达3000m, 可用于远距离通信。 (2) 数据传输速率高, 可达10Mbit/s;接口采用屏蔽双绞线传输。注意平衡双绞线的长度与传输速率成反比。 (3) 接口采用平衡驱动器和差分接收器的组合, 抗共模干扰能力增强, 即抗噪声干扰性能好。 (4) RS-485接口在总线上允许连接多达128个收发器, 即具有多站网络能力。注意, 如果RS-485的通讯距离大于20m时, 且出现通讯干扰现象时, 要考虑对终端匹配电阻的设置问题。RS-485由于性能优越被广泛用于计算机与PLC数据通讯, 除普通接口通信外, 还有如下功能;一是作为PPI接口, 用于PG功能、HMI功能TD200 OP S7-200系列CPU/CPU通信。二是作为MPI从站, 用于主站交换数据通信, 三是作为中断功能的自由可编程接口方式用于同其它外部设备进行串行数据交换等。

结束语

以上是几种常见通信数据接口线, 还有一些比较特殊通信数据接口线, 如RS-423、RS-449等, 虽然形状插接形式不同, 但它们的工作方式基本相似;又如配有USB接口转接数据线等, 另外, 不同的PLC使用通讯连接线内部是不同的, 比如西门子S7-200的PLC与欧姆龙的PLC的连接线外部封装相同, 但连接线内部接线是完全不同的, 所以不能相互替代使用只要掌握它们性能特点应用对象和通信功能方式等, 就能更好使用它;数据线通信是计算机与设备之间, 设备与设备之间不可缺少信息联络线, 是实现各种自动化控制接口的桥梁和纽带, 在计算机控制系统中发挥着不可替代的作用。

参考文献

[1]赵伟, 宫国顺, 韩雪松.计算机应用基础[M].北京:北京交通大学出版社, 2011.

[2]谢丽萍, 王占富, 岂兴明.PLC快速入门与实践[M].北京:人民邮电出版社, 2010.

[3]张梦欣.单片机原理与接口技术[M].北京:中国劳动社会保障出版社, 2009.

[4]乔桂红.数据通信[M].北京:人民邮电出版社, 2011.

结构化串行通信的软件实现 篇9

1 异步串行通信的软件实现

虽然同步串行通信比异步串行通信的传送速度快,但同步串行通信要求收发双方在整个数据传输过程中始终保持同步,这将对硬件提出更高的要求。而异步串行通信只要求在每帧的短时间内保持同步即可,实现容易,可靠性也高[1]。

因此,在本设计中采用异步串行通信,主要任务是接收串口数据,从缓冲区取出数据,执行相关操作后把结果再通过串口发送出去。串口通信的基本流程如图1所示。

1.1 串口数据的接收与处理

异步串行通信是以bit为单位传送的。设备之间的通信是以数据帧为基础的间歇性的数据交换,在连续的一段时间内传送一定数目的字节。一个好的串口收发程序应当不涉及到各种具体的通信协议,以减少程序功能模块间的耦合,使得程序易于维护。串口中断服务程序只负责字节的接收与发送,这样做还能减少中断服务的执行时间,提高对外设的响应速度。当接收到字节时,中断服务程序把数据存储到环形缓冲区中,并设置写指针pchead,缓冲区具体大小依据数据处理执行时间确定[2]。

例如接收一帧数据,数据采用十六进制,帧格式为:05,00,00,f0,f9,9a

其中05是一帧数据的长度,代表此帧的字节数目,本身不计算在内,第1个00是设备地址代码,第2个00是数据类型,代表这帧数据是上位机命令,f0是命令状态值,f9和9a是CRC-16校验码,低字节在前,从05开始计算,到f0计算结束。当接收到第一个字节时,中断服务程序将其存储到环形缓冲区,如图2所示,其中0020是环形缓冲区起始地址。

当接收一帧数据时,环形缓冲区中状态如图3所示。

在接收数据的同时,主程序循环中不断地从环形缓冲区中取数据,每次只取1 bit。在通常情况下,一般使用进位标志位cy来表示是否取到字节,若取到字节,将cy置位,否则清零,设置cy的过程在取字节函数中进行。

数据取出后,此数据即参与到数据处理过程中。为了正确地取出一帧数据,确定每帧的起始字节非常重要,因为它直接影响到系统的效率,对于提高对外设的响应速度是至关重要的。可以根据所使用的通信协议预先规定一帧数据起始字节的有效范围,处在范围中的字节认为是有效的,超出范围则开始下一帧数据的接收。接收到了起始字节以后,还必须使用一个变量记录已接收到的字节的数目,用来判断是否完整地接收到一帧数据。

在一帧数据中,字节应该是连续发送的,相邻字节之间的时间间隔一般是很短的。在取一帧数据的过程中,若出现了取到相邻字节之间的时间间隔很大的情况,应该放弃此帧数据的接收。造成这种情况的原因有很多,比如漏接字节或外设并未完整发送一帧数据,因此继续接收这帧数据将会出错,并会造成以后一连串的数据帧不能被正确取出,降低了对外设的响应速度,还会使系统不稳定。为了避免这种情况,在接收到了起始字节之后,应对随后的取相邻字节的时间间隔计时,如果超时就清零记录已接收到字节数目的变量,开始取下一帧数据,未超时则将取到的数据存到相应的消息缓冲区,超时时间大小依据波特率设定。当取到一帧完整的数据后,如图4所示,开始校验数据,正确的话继续执行后续步骤。

1.2 串口数据的发送

发送一帧数据即把缓冲区中的字节按顺序送到串口,比较常用的方法有查询发送和中断发送。发送数据是设备的一种主动行为,既可以采用查询发送也可以采用中断发送,但由于查询发送是处理器等待外设的一种方式,当外设处于非就绪状态时,处理器将无谓地消耗时间,降低了处理器的效率。9 600 B·s-1时查询发送约占用单片机10 ms,而中断发送所需时间要少得多,单片机速度越快,占用时间越少。文中采用中断发送方式,将待发送的数据存放到发送缓冲区,清零已发送字节计数值,然后置位中断标志,使程序进入串口中断服务程序。比如发送一帧数据,数据采用16进制,发送缓冲区,如图5所示[3]。

在中断服务函数中,使用变量send_pc记录已发送字节的数目,并与待发送数据帧的长度to_pc_len作比较,判断是否已经把数据全部发送。数据全部发送后,置位发送成功标志suc_uart0,退出中断服务程序。

当需要发送一帧数据时,只需要将数据长度赋值给to_pc_len变量,调用发送函数即可完成数据的发送。发送函数与其他功能模块分割清晰,调用时只需传递一个参数,可靠性高。

2 结束语

通过对串行通信的软件实现过程的分析,提出了结构化的串行通信实现方法。该方法功能模块接口清晰、调用方便,程序只需少量修改即可移植到其他系统,省去了大量的调试时间,有效地提高了系统的设计效率,加快了产品的上市时间。另外,此方法解决了接收大量数据时数据丢失的问题,提高了系统的实时性,同时也完全适用于多串口通信的情况。

摘要:通过分析串行通信软件实现的一些关键点,提出了一种结构化的串行通信实现方法。该方法中数据的传输与处理工作分开进行,适用于各种通信协议,软件实现具有较强的可移植性,提高了对外设的响应速度。经过使用证明,此方法工作稳定可靠,具有较强的实用价值。

关键词:结构化,串行通信,通信协议

参考文献

[1]李广弟,朱月秀,冷祖祁.单片机基础[M].3版.北京:北京航空航天大学出版社,2007.

[2]曾增烽,刘浩,李雪.基于51单片机的串行通信协议的实现[J].硅谷,2009(13):22.

上一篇:太阳能飞机下一篇:舞蹈编导的技术与理念

本站热搜