多串口通信(共10篇)
多串口通信 篇1
嵌入式系统目前已经广泛应用于工业、交通、能源、通信、医疗卫生以及日常生活等领域,并发挥着极其重要的作用.VxWorks操作系统是专门为实时嵌入式系统设计开发的系统软件,它支持多种CPU,如:POWERPC, CPU32,X86,MIPS,68K系列等,具有可裁减能力,支持应用程序的动态链接和动态下载,兼容POSIX标准,提供了高效的任务调度、中断管理、实时的系统资源以及实时的任务间通信.使用该系统软件可以将更多的精力放在应用程序本身,而不必再去关心系统的资源管理[1].提出了在VxWorks系统下的一种串口通信设计方法,采用了RS232,RS422和RS485的3种串口通信模式.3种通信模式各有特点:RS232是低速率串行单端标准,采取不平衡传输方式(即所谓单端通信),收发端的数据信号是相对于信号地的电平而言,其共模抑制能力差,传送距离短,且为点对点的通信.因为PC机只直接提供RS232串口,所以RS232应用广泛. RS422和RS485采用平衡传输方式,电平为差分方式,在通信速率,抗干扰和传输距离方面都有较大的改善.其中RS485可以实现多点通信,在主从式多机通信中得到普遍应用.
本嵌入式系统在传输距离远电缆较长时使用的是RS485广播方式,在近距离传输时使用的是RS422方式,实现数据容量较大的通信,用RS232实现VxWorks编译环境Tornado下的宿主机-目标机的连接、下载和调试.该多串口通信系统使用的主要硬件是盛博公司的基于PC104总线的SEM/MSP-8多串口卡.
1 硬件设置
SEM/MSP-8采用2片TG16C554芯片,共有8个串口,Port1~4 RS232/RS422/RS485/TTL可选 ;Port5~8 RS-232/RS-485/TTL可选,根据需要可以扩展到12个串口.带有16 B的 FIFO,标准配置下可以达到115 200bps,+5 V电压,8个串口的基地址和中断选择上电时从EEPROM中读取数据配置,上电后可通过软件配置.首先进行多串口板上的跳线设置,JP1,JP1a,JP2,JP2a,分别为设置Port1~Port8工作在RS232/RS422/RS485方式.D、C、B、A为基址地址设置,根据实际,这里基址设为0x100, D、C、B、A对应值为1 011,其中1表示短接,0表示断开.2,3,4,5,…,15为中断号,要使用哪个中断就将其跳为1,最好加上中断匹配电阻(通过J8设置).在此用到5,6,11三级中断.JCK为频段范围跳线,跳上时串口的工作频率是原来不跳上时的1/4[2].
跳线设置见图1.
Port1~Port4,为RS422工作方式 ,中断级别为5;Port5、Port6为RS485,中断号为6;Port7设置为RS232,中断号为11;Port8备用.其中Port1~Port4与通信的另一端为一一对应的关系,RS485因为可以广播,一个串口上对应的通信另一端又带了几个RS485端.如图2所示.
2 软件设计
软件设计包括初始化设计,接收方软件设计和发送方软件设计,其中发送方软件设计分为RS232/RS422发送方设计和RS485发送方设计.使用模块化的设计方法,在开发期间应用了数据流程图[3].
2.1 初始化软件设计
EMM8在系统启动时会从板上的EEPROM中读取各个端口的基本配置信息,主要是端口映射地址及分配的中断号,这些信息可以在启动后编程修改,在此设置串口的基地址为0x300,还可以通过对EEPROM的读写,用来对串口板进行上电自检.ACE串行通信口有一个可编程波特率发生器,以1到(216-1)为除数因子将时钟(1.843 2 MHz)分频,分频输出值(即串口通信的波特率)=时钟频率/(除数因子×16).2个8位除数因子锁存寄存器以16位二进制格式存储除数因子.(DLM高8位,DLL锁存除数因子的低8位).
软件流程如图3所示.
具体对各个寄存器的操作见源代码注释:
sysOutByte(BASEADDRESS+0,0x80+i);/*BASEADDRESS为板上硬件跳线确定的地址,在此为0x100,0x80使能最高位,i为串口号 */
sysOutByte(BASEADDRESS+1,COMBASE[i]>>3);/*设置的串口地址 */
sysOutByte(BASEADDRESS+0,0x88+i); /*0x8+i*//*写入存放串口i-1的中断选择的内部寄存器*/
sysOutByte(BASEADDRESS+1,LOADINT);/*设置中断号*/
sysOutByte(COM7BASE+3,0x9b); /*设置
通信格式,8-E-1*/
sysOutByte(COM7BASE+0,0x02);/*高位为0,低位为2*/
sysOutByte(COM7BASE+1,0x0);/*设置波特率9 600*/
sysOutByte(COM7BASE+4,0x09); /*使能外部中断和/DTR*/
sysOutByte(COM7BASE+1,0x05); /*外部数据接收中断置有效*/
intConnect(INUMTOIVEC(INTVECGET(LANUCHINT)),(VOIDFUNCPTR)BombINT,0); /*挂接中断服务程序, */
sysIntEnablePIC(LANUCHINT); /*开中断*/
2.2 接收软件设计
VxWorks系统中,在中断服务程序里不能有printf打印、取信号量、接收消息等,因为这些操作可能引起任务的阻塞.但是可以发送信号量,发送消息,在中断服务程序中应该尽可能地使用简单的原语操作,以便节省开销,同时提高可靠性,最好就是一个SemGive.在此把接收到的字符加入到环形缓冲中rngBufPut();也可以发送消息通知任务接收.根据具体的情况,可以添加一些容错处理.比如,每次退出中断前将接收缓冲寄存器(RBR)读空,退出中断时加一定很小(指令级)的延时:
for(ii=0;ii<0x400;ii++){}
软件流程如图4.
2.3 发送软件设计
RS232,RS422,RS485因为具体的电气和线路特征不一样,收发数据各不相同.抽象到软件层面,RS232和RS422可以看成相同的处理.它们发送软件具体源代码如下:
void BombSend422(void) {
while(i
if((sysInByte(COMBASE[i]+5))&0x20) {
sysOutByte(COMBASE[i],SendData[i]);
i++;
j=0; }
j++;
if(j>10 000) break; }
RS485在发送时,要先切换工作方式,然后才发送数据,最后把工作方式切换为接收.需要特别指出的是,RS485接收端和发送端的通信握手很重要,在一对正负线(L+、L-)上,不能同时又有接收又有发送,否则有可能烧毁硬件或者造成硬件工作不规则,通过示波器会看到波形失真,可能影响到系统的整体性能甚至是致命的错误. 具体在发送过程中,还要判断发送移位寄存器是否为空的TEMT位,在它为空时才表示发送缓冲区的数据已经完全送出,并且在发送完毕后加一定的延时,将其电平转换准备接收,然后才切换为接收方式:
bb=sysInByte(COMBASE[i]+5);
if(bb&0x40) /*判断TEMT位*/
{ /*发送数据*/}
for(ii=0;ii<0x400;ii++){}/*延时*/
sysOutByte(COMBASE[i]+4,0x09); /* 设置为接收方式
软件流程如图5.
3 设计中的注意问题
(1)串行字符的接收打包问题
字符设备和块设备相比,块设备可以对整个消息帧进行发送和读取,在编程实现时会相对的方便.字符设备每次收发只能按单个字符进行,其中一个不正确的字符可能干扰到整个通信系统工作不正常,尤其是报文格式不定长的时候.为此,对字符设备组成的报文进行分析很重要,需要一些容错处理.通常在一帧报文或者一个命令格式上,头2个字节加上报头、命令字,末2个字节加上校验和、结束符.接收时,判定报文的总长度,再加上以上的打包字节,这样在一帧数据中间多了几个字符的情况下,可以抛弃此帧数据,而不会连续的影响到下几帧.或者在头几个字符不正确的时候,可以滤掉多余的字节或者乱码,得出后边的正确报文.
(2)硬件进行初始化
直接在应用程序中对硬件进行初始化,而没有在板级驱动包(BSP)中.当存在多个中断但是中断级别又相同时,可以根据各个串口的不同地址来识别.在发生较多中断的时候,要对某些口进行一些读空操作,以免阻塞.
(3)看门狗的使用
此处延时很短,只用到了指令级,毫秒级以上定时使用看门狗定时器比较好,尤其在一些对实时要求比较高的场合.因为在VxWorks中,看门狗定时器是作为系统时钟中断服务程序的一部分来维护的,通常与它相联系的函数以系统时钟中断级作为中断服务代码来执行.用wdStart()启动看门狗进入延时状态,一旦计时结束,它将调用一个有wdStart()指定的一个中断服务程序,与taskDelay()延时不同,该中断服务程序在任务的上下文之外执行.所以taskDelay()可能会存在一定误差.
4 结 束 语
风河公司的VxWorks实时操作系统可靠性高,比WindowsCE的实时性好,相对于开源的嵌入式Linux,VxWorks编译环境Tornado更加简单和人性化,它已经成功应用于火星探测器和其他实时的高可靠系统中.多串口通信嵌入式系统使用了RS485的广播,Tornado下实现宿主机-目标机的连接使用RS232,它的不足之处就是下载到目标机进行调试的速度比较慢.软件固化到Doc上后,经实践证明,整个系统响应时间快,工作稳定可靠,通信流畅,满足了预期的要求.
参考文献
[1]孔祥营,柏桂枝.嵌入式实时操作系统VxWorks及其开发环境Toanado[M],2002:21-27.
[2]朱德森.微型计算机(80486)原理及接口技术[M].2003:279-288.
[3]白岚.数据流图在信息处理中的应用[J].光电技术应用,2005,20(6):64-67.
多串口通信 篇2
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配:
波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。
数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。
停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
PDA与单片机串口通信的实现 篇3
硬件结构
1. 掌上电脑
市场上较多见的掌上电脑是Palm系列产品,它使用的操作系统为Palm OS。Palm OS是一种32位的嵌入式操作系统,是一套开放性极强的系统,开发者向用户免费提供Palm OS的开发工具,允许用户利用该工具,在Palm OS系统的基础上方便地编写、修改相关软件。该系统是专门为掌上电脑编写的操作系统,编写时充分考虑了掌上电脑内存相对较小的情况,本身所占内存极小,基于Palm OS编写的应用程序所占空间也很小,通常只有几十KB。而且基于Palm OS的掌上电脑,虽然只有几兆的存储空间,却可以存储众多的应用程序。支持Palm OS产品的另一大特点是系统耗电量极小,以Palm Ⅲx为例,在正常情况下2节7号碱性电池,可使用2个月。Palm提供了串行通讯接口和红外线传输接口,利用它可以方便地与其它外部设备通讯、传输数据。本系统设计方案采用是PALM公司的Palm IV掌上电脑。
2.串行通信的硬件连接
RS-232信号的电平和单片机串口信号的电平不一致,必须进行二者之间的电平转换。在此使用的集成电平转换芯片MAX232为RS-232C/TTL电平转换芯片。它只使用单+5V为其工作,配接4个1μF电解电容即可完成RS-232电平与TTL电平之间的转换。转换完毕的串口信号TXD、RXD直接和AT89C51串行口连接。硬件连接如图1所示。
由于RS-232C并未定义连接器的物理特性,因此,出现了DB-25、DB-15和DB-9各种类型的连接器,其引脚的定义也各不相同。在设计本系统中使用DB-9连接器连接,作为掌上电脑与MAX232芯片串行接口的连接器,它提供异步通信的9个信号。DB-9连接器引脚功能和结构如图2所示。
软件编程
89C51微处理器与掌上电脑通信软件的实现由两个模块组成:微处理器的通信软件和掌上电脑的通信软件。
1. 单片机通信软件的设计
AT89C51与8051系列单片机是兼容的。所以编程、仿真和调试都可采用8051的开发工具。AT89C51单片机通信程序采用ASM51汇编环境下编写,在MCS-51单片机仿真调试软件下调试成功。
AT89C51单片机通过中断方式接收掌上电脑发送过来的字符,并回送确认信号给掌上电脑。程序协议:波特率设置为T1方式2工作,计数常数为F3H,SMOD=1,波特率为9600b/s;
串行口初始化为方式1,允许接收;中断服务程序入口地址为0023H。图3为程序流程框图。
2.掌上电脑串口通信软件设计
目前针对Palm环境的开发工具主要有CodeWarror C、JAVA、AppForgePersonal(Basic)等等。由于Palm平台与微机硬件、软件平台有着本质的差异,为了减少开发人员的培训费用,提高开发速度,我们采用CodeWarror C语言作为系统开发工具,只要熟悉C语言的编程者,都能在极短时间内熟练掌握CodeWarror C编程。
掌上电脑串口通信的实现遵循以下原则来管理串行口:打开和关闭串行口;读写缓冲区数据;查询缓冲区有字节数并读入内存;设置选项。
在本刊的网站上给出了单片机通信软件及掌上电脑串口通信实现的源程序,供读者参考。
3.通信协议
89C51微处理器与掌上电脑的通信协议读者可以采用自定义的协议,在定义通信协议时要注意考虑信号传输的可靠性。也可以采用TCP/IP的协议形式,一是可以提高传输信号的可靠性,二是可以方便以后系统的功能扩展,但编程相对复杂。限于篇幅关系,这里不再作详细介绍。
多串口通信 篇4
FPGA (Field-Programmable Gate Array) , 即现场可编程门阵列, 它是作为专用集成电路领域中一种半定制电路出现的, 既解决了定制电路的不足, 又克服了原有可编程器件门电路数有限的缺点。FPGA中具有丰富的触发器和I/O口, 采用描述语言 (VHDL和Verilog HDL) 进行设计, 用户可以根据需要, 描述出具有各种功能的电路。[2]
基于以上原因, 我们可以利用FPGA实现多串口通信中的数据转换和中断控制功能, 从而简化电路、缩小PCB面积, 也可以很方便的进行升级改动和模块移植。
1 设计要求
整个设计的硬件电路以DSP和FPGA为主构架, DSP和FPGA之间通过DSP的EMIF接口连接。其中, DSP是主处理器, 用于实现串口数据的处理, FPGA作为DSP的外围电路, 实现UART模块的串行数据的接收和发送、数据的串并/并串转换及接收中断的产生, 同时, 实现多串口的中断控制功能。当有接收数据时, FPGA通过中断方式通知DSP。
UART模块的数据格式:波特率可以按标准波特率设置;按字节接收, 每个字节前包含一个起始位 (低电平, 逻辑值0) , 无校验位, 最后是一位停止位和不定长度的空闲位 (高电平, 逻辑值1) ;接收到一个完整字节后产生一个中断 (高电平, 逻辑值1) , 当数据被读取后, 中断信号复位 (低电平, 逻辑值0) 。
中断控制器应能实现8路UART模块的中断接收和处理, 最后给DSP输出一个中断信号, 输入的各中断信号之间无优先级设定。
2 设计方案
完整的设计由时钟管理模块、接口模块、UART模块和中断控制器组成。时钟管理模块产生设计中所需各种时钟, 包括主处理时钟和接收与发送的波特率时钟;接口模块实现DSP和FPGA之间的中断、读写功能;UART模块由接收和发送子模块组成, 实现数据的串行接收和串行发送功能;中断控制器由中断采样子模块和中断处理子模块组成, 实现8路UART中断接收和处理功能。下面分别对这些模块的设计给予描述。[1]
2.1 时钟管理模块[3]
设输入FPGA的时钟为50MHz, 则主处理时钟设计为50MHz。U A R T的接收和发送采用相同的波特率进行, 本设计中采用115200b/s进行收发, 这就需要对50MHz时钟进行分频以产生所需的波特率。
2.2 接口模块
接口模块连接时钟管理模块、UART模块和中断处理器, 并与DSP采用EMIF总线相连接。与DSP相关的信号有:wr_n、rd_n、cs_n、addrs、data_bus和dsp_int, 在cs_n和wr_n有效时, DSP通过addrs选通不同的UART模块, 将需要发送的并行数据发送给发送寄存器, 执行发送功能。DSP响应外部中断时, 在cs_n和rd_n有效时, 通过addrs读取中断控制器的中断矢量和UART模块接收的数据。[4]
2.3 UART模块
2.3.1 发送模块
根据UART模块的数据格式, 发送状态机如图1所示。[5]
当复位信号rst_n=‘0’时, 状态机初始化为空闲状态, 当有需要发送的数据时, 即tx_flag=‘1’时, 状态机转入发送起始位状态;在发送起始位状态中, 串行输出数据线被置为0, 并保持一个波特率时钟周期, 即在baud_rate=‘1’时, 转入数据移位状态;在数据移位状态中, 利用baud_rate=‘1’的驱动, 将8位并行数据依次移位, 转成串行数据输出, 每移一位, 相应的计数器加1, 当cnt_bit_tx=“1000”时, 转入发送停止位状态;在发送停止位状态中, 串行输出数据线被置为1, 并保持一个波特率时钟周期, 即在baud_rate=‘1’时, 转入发送结束状态;在发送结束状态, 一个字节的发送过程完成, 清除发送标志, 即tx_flag=‘0’, 转入空闲状态。
2.3.2 接收模块
根据UART模块的数据格式, 接收状态机如图2所示。
当复位信号rst_n=‘0’时, 状态机初始化为空闲状态, 当检测到数据线上出现由1到0的跳变沿时, 即data_coming_flag=‘1’时, 状态机转入接收起始位状态;在接收起始位状态中, 在baud_rate=‘1’时, 判断数据是否为0, 如果是0, 则转入数据移位状态, 如果是1, 则回到空闲状态;在数据移位状态中, 利用baud_rate=‘1’的驱动, 将串行数据依次移位, 转成并行数据, 每移一位, 相应的计数器加1, 当cnt_bit_rx=“1000”时, 转入接收停止位状态;在接收停止位状态中, 在baud_rate=‘1’时, 判断数据是否为1, 如果是1, 则转入接收结束状态, 如果是0, 则回到空闲状态;在接收结束状态, 产生一个中断信号。
2.4 中断控制器[6]
2.4.1 中断采样子模块
在中断采样子模块中, 利用主处理时钟作触发, 检测各UART模块是否有中断输入, 如果中断输入端口出现由0到1的跳变沿, 则置该UART模块的中断采样值为1, 该值只有在复位信号rst_n=‘0’或清除信号clr=‘1’时, 恢复为0。程序逻辑如图3所示。
2.4.2 中断处理子模块
在该模块中, 主要完成中断矢量的生成、DSP中断信号的产生和中断清除信号的生成3个功能。
中断矢量由8个UART模块的中断输出信号合成, 特别注意的是因为各个UART模块中断清除信号和该矢量相关, 因此, 当该矢量不为0时, 要暂时锁定中断矢量, 即在DSP响应中断之前, 即使有新的中断信号产生, 也不允许更新中断矢量, 判断逻辑如图4所示。
在主时钟的触发下, 当中断矢量不为0时, 产生一个中断信号, 且只有当DSP读取了该中断矢量时, 才清除该DSP中断信号, 判断逻辑如图5所示。
当DSP中断清除信号有效时, 根据中断矢量, 生成中断清除矢量, 用于清除各个UART模块的中断采样信号, 该模块采用组合逻辑完成。
3 结语
在本设计中, 基于FPGA平台实现了通用UART芯片的核心功能和中断控制器逻辑, 能够满足多串口通信的需要。该电路已运用于实际工程中, 实践证明该电路结构简单、工作稳定, 可运用于低速率的异步通信。
参考文献
[1]杨英强.一种基于FPGA的UART电路实现[J].现代电子技术, 2005.YANG Ying-qiang.Realization of a Sort of UART Based on FPGA[J].Modern Electronics Technique.
[4]卞红雨, 纪祥春, 等.TMS320C6000系列DSP的CPU与外设[M].清华大学出版社, 2007.BIAN Hong-yu, JI Xiang-chun, et al.TMS320C6000DSP CPU and peripherals[M].TSINGHUA UNIVERSITY PRESS.
[5]李仁发, 凌纯清, 徐成.VHDL数字系统设计[M].电子工业出版社, 2004.LI Ren-fa, LING Chun-qing, XU Chengdu.Digital System Design with VHDL[M].Publishing House of Electronics Industry.2004.
多串口卡・什么是端口速率 篇5
多串口卡・什么是端口速率
端口速率即端口波特率,通常反映的.是多用户卡的系统吞吐量,即最大端口数×端口波特率/10。如瑞旺P990D多用户卡系统吞吐量为360Kbps,则在支持64端口时每一端口波特率为56.25Kbps,而在支持32端口时每一端口波特率为112.5Kbps(位/秒)。
由于一个系统本身所能支持的PCI插槽有限,所以,在PCI插槽足够的情况下,我们通常采用相同的卡,把端口平均分摊到每一块多用户卡上。但在PCI插槽数不够的情况下,就一定要采用高性能的多用户卡。
多串口通信 篇6
加弹机又名假捻变形机,是化纤用纺织机械的一种, 它是将涤纶、丙纶等无捻丝通过假捻变形加工后成为具有中弹、低弹性能的弹力丝的一种纺织机械,是我家乡——中国化纤加弹名镇——璜泾镇村民们钟爱的致富工具。其中,物美价廉的FK6型国产加弹机在家乡较为普遍,是百姓建厂创业理想工具。随着财富积累,生产线的增加,厂区规模的发展的和管理要求的提高,通过增加一套加弹企业信息监控系统来提高营加弹企业老板对厂区各车间、各生产线的远程监控就成为一件值得研究的课题。
2原加弹机工作原理及其电控系统的基本分析(Basic analysis of the working principle of the original and the electric control system of the missile)
一台标准的FK6型加弹机由10节组成,分A、B两侧放置,每节有12个锭位和24卷装位。机器运转时,可同时对24根丝进行假捻操作,工艺流程如下[1]:
POY原丝→切丝器→进丝罗拉→止捻器→变形热箱→假捻器→张力传感器→中间罗拉→定型热箱→出丝罗拉→上油罗拉→探丝器→DTY卷装
从上可以看出加弹机中存在张力传感器、切丝器、探丝器、定形热箱、变形热箱等基本电控环节,是信息监控系统主要监控对象,它们在生产中的作用简述如下:
(1)探丝器用来检测丝的运转状况。当检测到断丝时会触发相应锭位上的切丝器动作,避免断丝后丝线卷绕在罗拉上导致故障,保证机器正常运转。另外,切丝器和探丝器又组成卷装定长定重系统。这是因为探丝器同时也产生计时信号,可对锭位丝束的卷绕长度进行记数,当达到系统设定的定长长度时,触发切丝器动作和相应的信号灯来提示操作员落筒,卷装的重量是通过卷绕长度换算得到。
(2)加弹机热箱分定形热箱、变形热箱两种。每区合用两个变形热箱,共20个,温度在180℃—225℃;每区又配备一个定型热箱,共10个,温度取60℃左右。电控系统给每个热箱配备了两个PT100测温电阻,这样一台加弹机就有60个监控测温点[2]。
(3)张力监测系统主要由张力传感器、放大电路、数据采集电路与系统软件组成,用以监测丝线加捻质量与加工效率。
以上各测控点可经温控板、丝线监控板等通过RS485接口和PLC进行通讯,即PLC是现有加弹机电控系统的核心。 现场解析发现,每台加弹机的电控系统主要由两个西门子S7200PLC来完成。其中,一台传动PLC用于丝线传动速度控制,另一台温控PLC完成热箱的温度控制以及锭位卷绕时间控制。设定的工作参数可从触摸屏输入,由PLC发送到控制板;实际检测值通过RS485通讯传递到PLC,然后在触摸屏上显示出来,如图1所示。
触摸屏用于现场管理人员操作、修改,方便监控,但企业管理者要在办公室电脑上要查看多条加弹机生产线的运行数据就不那么方便了。所以,要想办法将上述电控信号传输到电脑上,这就遇到两个问题要解决。第一个是PC机和PLC连接通讯的问题,第二个是上位机PC端软件开发的问题。
3PC机多串口与PLC通讯的实现(TherealizationofmultiserialportandPLCcommunicationinPC)
S7-200系列PLC提供两个串口,其中一个端口(PORT1) 作为DP口,另一个端口(PORT0)为自由口为标准RS-485串口。有三种通讯方式:一种是点对点(PPI)方式;第二种为DP方式;第三种是自由口通讯方式。本设计中采用自由口(或PPI)通讯方式实现PLC与外设的通讯。
监控主机选用台式PC机,一般拥有标准串口RS-232和PCI卡插槽;西门子公司提供的PC/PPI电缆带有RS232/ RS485电平转换器,因此在PC机加装转换器驱动软件的情况下可以很方便地将PLC和PC机互联,如图2所示。监控主机如果为笔记本电脑,则现今市场也可采购到USB接口的西门子S7-200-300/400PLC编程适配器电缆,使用也十分方便。
考虑到现有私营企业大多发展到8条左右生产线的规模, 对应PC机上串口直连数量就有些不足,我们在市场上选购上PCI转8口RS232串口卡,如图3(a)所示,这样我们就可方便地同时接入最多来自8台加弹机上的PLC,如图4所示。在PC机空闲的PCI插槽插入PCI转8口RS232串口卡、安装驱动后,在设备管理器中就可以看见扩展的com3,com4,…,com10等(如果PC机没有PCI插槽,也可选用如图3(b)所示的USB转16口RS232转换器,三个级联可实现多达48个串口)[3]。
使用多串口卡是最便捷简单地解决扩展计算机外部设备数量的方案[4]。多串口卡是一种可分配多个串/并行端口供终端连接的设备,每个终端可以通过它与主机进行通讯。本设计方案在PC主机上安装了“组态王”用以实现上位机软件功能。
4上位机软件开发和通讯设置(PCsoftwaredevelopmentandcommunicationsettings)
随着工控技术的发展,现今上位机软件开发存在多种手段,为方便非软件专业的工程技术人员进行工控软件开发, 国内外相继出现了以不同厂家名义推出的组态软件,北京亚控科技发展有限公司的“组态王”就是优秀国产工控组态软件的代表。它易学易用、界面友好、图形形象丰富、实时性好、开发周期短、深受工程开发人员的青睐。
组态王软件主要由工程管理器、工程浏览器器、画面运行系统三部分组成。工程浏览器是“组态王6.55”软件的核心部分,也是软件的开发系统。工程浏览器将图形画面、报警、命令语言等工程元素进行集中管理,操作界面和方式非常类似与Windows操作系统中的资源管理器,方便工程人员进行高效的工程程序管理。组态王支持多种通讯方式,当然包括串口通讯,这是组态王与I/O设备之间最常用的一种数据交换方式。串行通讯方式使用“组态王计算机”的串口,I/O设备通过RS-232串行通讯电缆连接到“组态王计算机”的串口。 如果您的计算机拥有多个串口,您可以同时与多个I/O设备。 组态王最多可与32个串口设备相连[5]。
4.1建立图形画面
进入组态王工程管理器建立项目工程,命名为“多串口加弹企业信息监控系统”。双击打开工程浏览器图形绘制生产线1第一幅工程画面,内容为热箱30个温控点数据表格显示和柱形图,如图5所示。数据表格排列是依照加弹机10节240锭位分A、B两区现场排列设计,一节有三个测温点;设计柱形图是为了更容易让人直观地观察到数据异常;设计日期窗口是为了数据记录能对应具体时间;设计翻页箭头是为了方便查看下一页内容。
由于探丝器计数数据多达60个,是热箱温控点的1倍,在一幅画面中集中显示有些困难,所以分别绘制生产线1第二、 三幅为定长定重工程画面。第四幅为生产线1传动工程画面。 以上主要工程画面排布图5类似,不一一贴图展示。
4.2建构数据库和通讯设置
点击工程浏览器中的“设备”,查找PC机COM串口,如在本案为COM1口,则在点击COM1口时弹出的“设置串口— COM1”对话框设置与S7-200的通信参数,如图6所示;再双击在右侧目录内容中显示的“新建”弹出的“设备配置向导—生产厂家、设备名称、通信方式”对话框中选择PLC西门子,然后选择配置生产线1所接串口设备西门子S7-200串口号COM3、COM4,指定其PLC地址为3、4。生产线2所接串口设备:西门子S7-200串口号COM5、COM6,指定其PLC地址为5、6。其余生产线3、生产线4配置类推之。
组态王具有数据库管理功能,是联系上位机和下位机的桥梁。本方案定义了温度、定长定重、传动数组,利用SQLServer2000数据库软件保存数据,并利用SQL Server 2000软件保存的数据借助组态王动画控件显示温度、定长定重、传动等情况。通过SQL访问管理器访问实时数据库,车间工况以动画的形式反映在PC机屏幕上;通过历史数据库,可以对保存的历史数据进行查询、导出、打印,为发生事故后的操作与管理人员提供参考依据[6]。
由于本监控系统只需要读取生产线数据而不在PC机上对生产线进行指挥操作,所以几乎无需其他控制程序;做好表格、数据柱形图动画连接,设定数据高低限超值报警就可进行调试运行,查看生产线1—8上的温度、定长定重、传动数据。
5结论(Conclusion)
多串口通信 篇7
STM32单片机是基于高性能Cortex-M3内核的32位单片机,外设功能强大,最大工作频率72MHz。 本文选用的STM32103VET6芯片,有多达5个USART、3个SPI口和2个I2C口,便于产品与上位机的通信。采用基于库函数的编程方法,能很快地进行产品开发。目前公开的文献没有提及无硬件平台情况下对STM32进行多串口调试的方法,部分文献有介绍用虚拟串口仿真51单片机,但没有提及怎样仿真串口接收通信的情况[1,2,3]。本文采用基于Real View MDK、VSPD( 虚拟串口) 和串口调试软件的联合仿真调试技术,可以在没有硬件平台的情况下, 完成多串口收发通信软件的开发和测试。
1多串口通信的软件设计原理
软件流程图如图1所示。
本文使用的STM32芯片有多达5个USART,使用其中的3个USART(USART1 ~ USART3)。在不进行管脚 重映射的 情况下,USART1 _ Tx管脚为PA9,USART1_Rx管脚为PA10,USART2 _Tx管脚为PA2 ,USART2 _Rx管脚为PA3 ,USART3 _Tx管脚为PB10,USART3_Rx管脚为PB11。软件的设计采用模块化,包括RCC时钟配置模块,NVIC中断向量配置模块,USART1 ~ USART3管脚配置 模块、 USART1 ~ USART3初始化模块,USART1 ~ USART3通信模块等。
1.1RCC时钟设置模块
采用8 MHz外部晶振作为PLL时钟,再倍频到72 MHz。该时钟作为系统时钟,待系统时钟稳定后,再进行各模块时钟的分配[4]。时钟初始化模块部分代码如下:
1.2UASRT通信管脚配置模块
STM32单片机功能管脚由GPIO管脚进行映射,这里仅给出USART1_Tx和USART1_Rx管脚配置的软件代码,USART2和USART3的管脚配 置类似[5]。
1.3NVIC中断向量模块的配置
NVIC是中断向量控制器,用来控制多个中断向量的优先级,在NVIC中设置USART1中断为最高优先级,USART2次之,USART3中断优先级最低。 本文设置发 送为顺序 发送,接收为中 断响应接 收[6]。代码如下:
USART1 ~ USART3的抢占优 先级相同,USART1的从优先级值最小,所以USART1的优先级别最高。
1.4USART的通信配置模块
采用全双工通信,对USART1进行配置,USART1的波特率115 200 bit / s,数据位8位,停止位1位,无校验位,无流量控制,接收、发送使能,采用接收中断方式,USART2和USART3的配置类似。
1.5USART的中断接收模块
在该中断响应函数中,当USART1接收事件完成时,产生中断信号,通知微处理器进行串口通信的接收处理[7,8]。
当USART2和USART3产生接收中断时,进入相应的中断函数进行处理。
2虚拟串口和仿真串口的绑定
传统的USART调试必须有相应的开发板,连接开发板的串口和上位机的串口,开发软件Real View MDK在调试时,有3个串口的仿真输出窗口UART# 1,UART# 2,UART #3,但这3个窗口只能仿真串口输出,不能仿真串口的接收通信。采用虚拟串口软件VSPD(Virtual Serial Port Driver),可以虚拟出多对串口,如图2所示。分别把每一对虚拟串口中的一个与STM32单片机的每个串口进行绑定,就可以进行串口的通信仿真测试。
本文用VSPD软件虚拟了3对串口,分别是COM4和COM5、COM6和COM7、COM8和COM9。 COM4发送数据时,COM5接收数据,反之亦然。为了仿真STM32单片机3个串口的 收发通信,把UART1和COM4绑定在一起,把UART2和COM6绑定在一起,把UART3和COM8绑定在一起。因为虚拟串口COM4和COM5互相通信,所以用COM5发数据,可以模拟串口COM4的中断接收数据。配置文件为COM4_OUT. txt,把后缀名改为. ini。内容如下[9,10]:
文件的作用是配置COM4的波特率为115 200 bit / s,8个数据位,1个停止位,无校验位,把COM4和STM32的第1个串口绑定在一起,配置COM6的波特率与COM4一样,绑定COM6和STM32的第2个串口在一起,依次类推。把COM4_OUT. ini文件放在工程文件 中,编译后,就可以利 用Real View MDK软件和串口调试软件进行串口的通信仿真测试。
3USART通信发送、接收数据测试
3.1发送数据测试
设置3个发送数组,uart1 _ tx[64 ]、uart2 _ tx [64]、uart3_tx[64],因为COM4和COM5相连接, 当COM4发送数据时,COM5接收数据,由图3可知,当COM4发送数组uart1 _ tx[64]的数据时, COM5的接收区正确显示数组uart1_tx[64]的数据。 COM8和COM9相连,由图4可知,COM9的接收区正确显示数组uart3_tx[64]的数据[11]。
3.2接收数据测试
用uart1_rx[64]、uart2_rx[64]和uart3_rx[64] 分别模拟COM4、COM6和COM8中断接收数据,这时COM5、COM7和COM9分别发出数据。该实验用于测试多串口中断接收通信的准确率[12]。
对比图5和图7可知,uart1_rx[64]正确接收到COM5发出的64个数据,表明COM4中断接收通信正确。对比图6和图8可知,uart2_rx[64]正确接收到COM7发送的64个数据,表明COM6中断接收通信正确。
4结束语
多串口通信 篇8
1.多线程技术简介
进程是程序的一个执行实例,属于在计算机的基础上执行程序的一个分支,多线进程就是能在同一时间内执行多个任务。工作状态下多线程的进程中至少需要有一个主执行线程,这个线程是程序自带的,不需要用户去创建,但是其他的线程如果需要应用,得靠用户自己去建立,然后多个线程可以并行得运行在一个程序当中,共同的使用这个进程中的空间和资源。多线程技术得运用要靠VC++环境的支持,MFC类库为多线程的编程提供了很大的方便,MFC类库中一般存在着两种类型的线程,划分的标准是用户群体的不同,一种是工作者线程,另一种是用户界面的线程,一个完整的线程的完成要在MFC中经过创建、挂起、恢复和终止等步骤。线程之间的同步问题也是多线程技术必选要研究的,这是因为,在实际的工作中,由于多个线程都要使用一个进程中的资源,所以不可避免的会出现摩擦等状况,为了解决这个问题,一般使用的是Win32 API[1]。
2.串口通信的原理和编程
串口通信是近几年兴起的技术,由于便捷性和精确性,很受通信事业的重视。互联网是一个很庞大且复杂的环境,在这样一个大环境下,串口通信技术依然是不可获取的,属于系统资源的一部分。串行端口的本质功能主要是作为一个转换器,在CPU中起到转换编码的作用,在整个系统中起着不可替代的作用,当有数据通过CPU并经由串行的端口发送出去的时候,原本属于字节的数据经过串口的转变就变为了串行数据。所有的应用程序使用串口进行通信的时候,都必须要向操作系统申请资源,如果没有资源申请,通信就不会有开始的机会,同样在通信结束的时候也必须进行资源的释放环节。
在互联网的大环境下,编程工作中串口通信技术的使用主要有三种,分别是MSComm控件、Windows API、第三方串口通信类,三者都各有特点,为不同环境下的使用提供了不同的选择。MSComm控件能够简化编程,使工作变得简单明了,但是由于MSComm控件做了比较大的封装,所以会对编程的灵活性和可控性有不小的影响,因此在进行多线程多串口的编程时,为了工作的效率,还需要做很多复杂的处理。Windows API也有自己的特点,使用Windows API编写串口程序时,对编程人员的能力要求比较高,不仅操作技术需要娴熟,还需要掌握多种编程技术,但是Windows API在应用的过程比较稳定。第三方串口通信类相较于前两种处于居中的转台,既可以使得编程的效率高,也可以加强程序的控制性,所以第三方串口通信类的应用要比前两种广泛。
3.多线程串口通信技术在GPS导航中的应用
■3.1分析GPS导航系统
GPS导航的工作要借用卫星来实现定位技术,对用户提供帮助,为了实现定位需要将用户申请的实时数据使用接口机串口来接收,并且在接收的过程中,还需要对数据进行监控、存储和显示等,这些都可以通过多线程串口通信技术来实现,为此,我们首先对GPS导航系统进行分析。GPS导航程序主要分为以下几个部分,首先是主线程,主要是负责用户消息的处理,然后再通过已经预定好的义流程来调度其他的支线程来处理数据。其次是串口坚实的线程,属于数据处理的一个缓冲期,入库线程是将缓冲期的数据进行处理之后再对数据进行储存。最后是显示线程,顾名思义,是将处理好的数据显示给用户的一个程序,呈现出的状态一般都已经和地图相匹配,是用户能够看懂的各种数据[2]。具体的图如1所示。
■3.2具体的实现
GPS系统中对串口的操作大多采用的是CSerial Port类,一般的应用流程是:首先需要做的是设置好串口的参数,之后才开启串口的监测工作。监测到的数据要通知主线程,由主线程进行控制,根据事先预定的情绪和实际的情况,分发给支线程处理,这是针对数据的接收而言的,对于数据的发送,则可以直接向串口进行发送。对此首先应该建立一个CSerial-Port Test,其他的程序先保持不变的状态,之后需要添加各种类文件,还需要在视觉类的文件上添加定义串对象。接下来是增加消息响应函数,对串口进行初始化并且开启监控程序,最后是对函数中的数据进行处理,比如将收到的数据对照实际位置的经度和纬度,将处理后的数据收集到数据库,再通过特定的程序展现给用户。
4.结束语
GPS导航已经在人们的生活中扮演了重要的地位,不管是普通的日常出行还是专业的开发,GPS导航都有重要的作用,所以及时更新GPS导航有着很大的社会现实意义。多线程串口通信技术的出现,解决了GPS系统中存在的各种问题,提高了导航的精准度,增强了系统的工作效率。但是多线程串口通信技术也不是发展的非常完善,并且现实中在GPS系统中的应用也没有达到完美的程度,依然需要社会各界人士的共同努力。
参考文献
[1]冯正,韩焱,王黎明.多线程串口通信技术在GPS导航中的应用[J].现代电子技术,2009,05(8):28-30+33.
多串口通信 篇9
1 系统串口通信设计
32位下串口通信程序可以用多种方法实现:使用较多的有MSComm控件、Win32API通信函数、CSerialPort类。
MSComm是微软提供的串口编程控件,为应用程序提供串口通信功能,功能较完善,使用方便。
Windows API是所有Windows应用程序的根本。简单地说,API就是一系统的例程,应用程序通过调用这些例程来请求操作系统完成一些低级服务。调用Windows的API函数,可以清楚地掌握串口通信的机制,并且自由灵活。
CserialPort类是Remon Spekreijse写的一个串口类,是一个非常好用的多线程串口编程工具,它可以秀轻松的完成一般串口编程任务。
某型飞行模拟训练器系统中要求上位机同时和24个下位机通过串口进行数据交换,使用API函数实现串口编程,方法灵活、功能强大,但需要编程人员对串口硬件工作原理有较深入了解;使用MSComm控件编程简单,对付简单的任务完全可以胜任,但当需要在程序中用多个串口,且还要做很多复杂的处理,使用CserialPort类,很快就可搭好串口通信框架,编程者可以从烦心的框架编写中解脱出来,将精力放在通信协议的编制及数据处理上。
在本飞行训练系统中,硬件采用工业多串口卡进行串口扩展,软件基于VS.Net环境,采用CserialPort类进行串口通信程序的编写,基于RS-485标准来完成模拟训练器中多串口数据通信的功能。
2 系统串口通信实现
2.1 串口扩展
串口扩展在工控机上插三块PCI接口8口串口扩展卡,设置串口号为1~24,波特率设置为115200bps,与下位机一致。每个串口连接一特定设备。
2.2 软件编程
CserialPort类是基于多线程的,其工作流程如下:
1)在dataChange工程中添加SerialPort类文件
将类文件SerialPort.h和SerialPort.cpp复制到工程所在文件夹中,在工程中添加类文件,并在dataChangeView.h中包含头文件:
)串口初始化
在OnInit函数中完成串口的初始化,
3)建立WM_COMM_RXCHAR的消息映射处理函数OnCommunication()完成数据的接收。
4)发送数据调用函数WriteToPort()直接向串口写数据即可,为保证上位机对下位机进行实时数据更新,添加WM_TIMER消息响应,每500ms向各串口定时发送数据。
3 结束语
本文分析了几种常用的实现串口通信的具体方法。最后通过串口卡扩展串口,软件在VS.net环境下使用CserialPort类编程基于-标准进行上位机与各下位机进行数据通信。经测试,系统运行稳定,该方案可以在同类多串口通信系统中借鉴。
参考文献
[1]孙鑫.VC++编程深入详解[M].北京:电子工业出版社,2006.
[2][美]David J Kruglinski.Visual C++技术内幕[M].潘爱民,王国印,译.4版.北京:清华大学出版社,2009.
[3]侯俊杰.深入浅出MFC[M].2版.武汉:华中理工大学出版社,2001.
[4]龚建伟,熊光明.Visual C++/Turbo C串口通信编程实践[M].北京:电子工业出版社,2007.
USB虚拟串口通信实现 篇10
本文中的智能家居控制系统采用基于USB的虚拟串口同中心汇聚节点通信,中心汇聚节点采用意法半导体公司STM8S103系列微处理器,实现数据的接收与发送。上位机系统控制软件在Windows环境下通过VC++6.0编程开发,基于USB的虚拟串口具有传输数据稳定、安装简便、即插即用等特点[2]。
1 控制系统总体设计
系统总体结构如图1所示,主要由3部分组成,基于PC机的上位机系统控制软件、中心汇聚节点和各家电子设备节点。中心汇聚节点和各家电子设备节点均搭载433无线通信模块。各家电子设备节点可以根据自身设备的状态信息,整合成一定格式的数据帧,经433无线模块将数据信息传送给中心汇聚节点,而后通过基于USB的虚拟串口将数据转发给上位机系统控制软件,上位机软件实时显示家电子设备的状态信息[3]。同样,当用户需要控制和管理家电设备时,控制指令经虚拟串口和433无线模块将指令下发至相应家电设备,根据指令执行相应操作[4]。
2 虚拟串口硬件电路设计
2.1 芯片简介
CH341是一种高度集成的USB总线转接芯片,通过USB总线提供异步串口、打印口、并口以及常用的2线和4线等同步串行接口。在异步串口方式下,CH341提供串口发送使能、串口接收就绪等交互式的速率控制信号以及常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB总线。具备USB全速接口,兼容USB V2.0,外围器件简单,只需晶振和电容。完全兼容计算机端Windows操作系统下的串口应用程序。硬件全双工串口,内置收发缓冲区,支持通讯速率50 bit·s-1~2 Mbit·s-1和5、6、7或者8位数据位、奇校验、偶校验、空白、标志以及无校验、串口发送使能、串口接收就绪等传输速率控制信号和MODEM联络信号。
2.2 串口硬件电路设计
USB转虚拟串口部分电路主要由CH341和STM8S103构成,其电路原理如图2所示,设备采用USB总线供电方式,时钟电路由12 MHz晶振搭配2个20 pF电容构成,将CH341芯片的SDA和SCL引脚悬空,从而使其工作于异步串行口模式,采用常用的三线式串口通信方式,将CH341芯片的RXD、TXD、GND引脚分别于单片机STM8S103的TXD、RXD和GND引脚相连。在USB接口的电源端连接一个磁珠,以减少PC机与设备的干扰,同时在电源端增加去耦和旁路电容,以提高设备的抗干扰能力[2]。
3 上位机系统软件设计
3.1 USB转虚拟串口驱动安装
当完成硬件连接后,为实现正常的串口通信,还需为PC机安装相应的驱动程序。从互联网上可下载相应芯片的驱动程序,因本设计选用USB总线转接芯片为CH341,故下载并安装对应的CH341SER驱动程序,该驱动程序支持Windows 98//XP/Win7 32位/64位等操作系统。该虚拟串口实现仿真标准串口,完全兼容计算机端Windows操作系统环境下的串口应用程序,用户可以像访问标准串口设备一样对该虚拟串口进行通信,但实质其数据通信则是通过USB总线完成。待安装完驱动程序后,便可以对该设备进行基于串口的上位机应用程序开发[2]。
3.2 系统控制软件设计
上位机控制软件在VC++6.0环境下开发,采用VC++6.0提供的MSComm控件进行应用程序设计。MSCOM控件提供了完善的数据接收与发送功能[2],支持事件驱动和查询两种通信模式。事件驱动方式下,当有串口发生事件或错误时便响应OnComm事件处理程序;查询模式下,则通过定期查询MSComm控件的ComEvent属性变化来进行数据处理。考虑到控制系统的实时响应能力,上位机应用软件采用事件驱动方式,即当串口有数据接收时便响应OnComm事件,然后在OnComm事件处理函数中加入相应的通信处理代码。系统控制软件操作界面如图3所示。
3.2.1 通信参数设置
为保证控制系统能成功进行串口通信,系统控制软件与汇聚节点设备应设置相同的波特率、数据位等通信参数[5],此外因为PC机为USB总线转接芯片CH341分配的虚拟串口是不确定的,为此设计了通信参数设置对话框来对虚拟串口的通信参数进行设置,界面如图4所示。
3.2.2 通信数据处理
上位机系统控制软件主要负责用户控制指令的发送与接收,同时及时更新显示当前家用电子设备的状态信息。应用软件主要包含系统初始化程序、串口接收与发送程序和数据处理与显示程序3部分。初始化程序主要负责系统的串口通信参数配置;串口接收与发送程序则负责将数据组合成数据帧,并发送或接收汇聚节点数据帧[6];数据处理与显示程序则根据不同的数据帧进行相应处理,并及时更新对应家电子设备的控制界面,程序流程如图5所示。
4 实验验证
为进一步验证USB转虚拟串口通信在具体系统应用中的可靠性和稳定性[7],按照图1搭建测试系统,在PC机上安装好对应的USB转虚拟串口驱动程序,打开上位机系统控制软件,选择对应的串口,设置与中心汇聚节点相匹配的串口通信参数,在应用软件中选择加湿器操作界面,改变界面状态以发送控制指令,查看对应的加湿器是否执行相应的操作;通过手动改变加湿器的状态,查看上位机系统控制软件中加湿器界面状态是否及时更新,测试结果如图6所示,实验测试表明系统响应速度快、稳定性强,USB转虚拟串口通信能够满足实际控制系统的通信需求。
5 结束语
本文设计了基于USB虚拟串口通信技术的串口通信模块,介绍了其设计方法与原理,开发了基于虚拟串口通信的上位机系统控制软件,并将其应用于智能家居控制系统。采用USB虚拟串口解决了传统串口逐渐消失、扩展性差、安装繁琐等问题[2],实验测试表明基于USB的虚拟串口具有传输速率稳定、即插即用等特点。
摘要:以一种高度集成的USB总线转接芯片CH341为核心,设计并实现了基于USB接口的PC机与下位机的虚拟串口通信。上位机在Windows环境下利用MSComm控件实现与下位机通信,介绍了USB转虚拟串口的实现方法,并基于该虚拟串口编写了智能家居控制应用软件。实验测试表明,采用虚拟串口实现上位机与单片机通信,具有结构简单、速度快和易于软件开发等特点,能满足于各种串口通信场合。
关键词:VC++6.0,USB,虚拟串口,CH341,智能家居
参考文献
[1]成芳芳.基于USB虚拟串口技术的漏电保护的研究[D].天津:河北工业大学,2011.
[2]宁辉,孙学艳,刘建,等.VB6.0环境下基于USB的虚拟串口通讯实现[J].现代电子技术,2012,35(6):45-48.
[3]韦立明.基于USB通信设备类的虚拟串口研究与设计[D].西安:西安电子科技大学,2012.
[4]涂亮,段红光.基于433无线收发模块的物联网智能家居系统设计[J].电视技术,2012,36(6):44-46
[5]刘杰,章韵,陈建新.利用433 MHz射频通信技术实现智能家居系统[J].计算机应用,2012,32(S2):68-72.
[6]MUHAMMAD R A,MAMUN B I R,MOHD A M A.A review of smart homes-past,present and future[J].IEEE Transactions on Communication Cricuit,2012,42(6):1190-1203.
【多串口通信】推荐阅读:
异步串口通信06-30
串口通信论文12-07
串口通信实验报告07-04
计算机串口通信08-08
串口与网络通信08-31
串口通信数据的传输10-29
机器人串口通信11-02
串口通讯与数据通信08-11
rs485串口通信原理06-28
VisualBasic串口通信程序设计08-25