串口数据通信协议

2025-01-21

串口数据通信协议(精选7篇)

串口数据通信协议 篇1

摘要:多个独立的控制模块完成它们之间通过串口通信完成复杂的控制过程, 必须在通信过程中加入必要的通信协议, 要完成特定的通信协议, 就得有一定的同步机制。本文针对串口通信过程中的帧同步问题给出了分析。

关键词:串口数据通信协议,RS-232,帧同步

0前言

串口通信协议用于完成双机互联程序的文件传输功能, 简称SPCP。设计思想基于帧传输方式, 即在向串口发送数据时是一帧一帧地发送。为了保证可靠传输, 通过握手建立连接, 在每一帧的传输中, 采用发送/应答/重连/失败方式。所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定, 通信双方必须共同遵守。它属于OSI七层参考模型中的数据链路层。由于RS-232标准只是一个接门标准, 它规定了连接电缆、机械、电气特性、信号功能及传送过程等, 因此, 在OSI七层 (包括应用层、表示层、会话层、传输层、网络层、数据链路层、物理层) 参考模型中只代表了物理层 (Physical Layer) 和数据链路层 (Data Link Layer) , 如果想实现数据的双向访问, 使通信双方能够按规定的格式从串口发送数据, 同时也能从接收到的数据中将需要的信息提取出来, 就需要设计用户通信协议, 以进行数据处理。而用户层协议则是面向使用者的, 这种用户层通信协议简单地讲就是对数据格式、同步方式、传送速度、传送步骤、数据校验、检纠错方式等问题做出统一规定, 通信双方必须共同遵守。

1 数据成帧

在通信过程中的帧, 按其功能的不同, 分为数据帧、控制帧和短语帧三种。数据帧用于传递用户所需传递的信息 (文件) , 数据帧中的数据最终会被程序解读并重组;而控制帧则用于实现在通信过程中的控制信息的交换, 以顺利实现数据帧的传输;短语帧用于文本消息的发送。每一帧分为帧头和负载两个部分, 其中帧头占6个字节, 前2个字节用于区分三种帧, 后4个字节对于不同帧的意义各不相同, 负载长度不定。

1.1 数据帧

数据帧包括帧头、负载数据和校验和。帧头长8个字节, 其中, Source表示发出本帧的机器的编号;Destination表示本帧欲发送到的目的机的编号;Count表示负载数据的长度 (字节计数) , Count则是程序运行中根据输出缓冲区大小而定的, 最多不超过输出缓冲区的一半;Checksum表示将前面从Byte0到Byte5所有的数据进行校验和计算后得到的结果。

1.2 控制帧

控制帧与控制信号合作完成通信同步与控制任务, 只有帧头, 没有负载数据, 帧头长8个字节, 其中n Pack表示本次传输共发送的帧数, 以便让接收端控制进度。当n Pack=Checksum=0时, 表示本次传输结束, 当接收端收到该帧时, 不管是否已收到应接收的帧数, 都将结束此次传输 (记该帧为ABORT帧) 。在没有发生传输错误的情况下, 一次传输只会出现两次控制帧, 第一次在传输开始时 (记为控制首帧) , 第二次则在传输结束时出现。

1.3 短语帧

短语帧的组成与数据帧十分相似, 前两字节分别为0x01和0x00, 其后的字节则用于承载所要发送的文本数据, 短语帧的最后两个字节仍然为对本帧前面所有字节的校验和计算后的值。

应用程序发送来的数据作为一个流按协议进行分帧, 切割后为每帧加上帧头和校验和进行发送;在接收端, 分帧的数据去掉帧头后存入文件缓冲区, 接收完成后写入磁盘。

2 数据传输方式

在数据传输时, 主要有三种方案可供选择, 即有确认的面向连接的服务;有确认的无连接的服务;无确认的无连接服务。有确认的面向连接服务在源机器与目的机器在传递任何数据之前, 都先建立一条连接。在这条连接上所发送的每一帧都被编上号, 数据链路层保证所发送的每一帧都确实已收到。与此同时, 它保证每帧只收到一次, 且所有的帧都是按正确的顺序收到的, 但是这种连接方式系统开销较大。大多数广域网的通信子网的数据链路层采用面向连接确认服务。无确认的无连接服务是源机器向目的机器发送独立的帧, 而目的机器对收到的帧不作确认。事先没有建立连接, 事后也不存在释放。如果由于线路上的原因造成某一帧的数据丢失, 则数据链路层并不会检测到这样的丢失帧, 也不会恢复这些帧。错误率较高。当然在错误率很低, 或者对数据的完整性要求不高的情况下 (如话音数据) , 这样的服务还是非常有用的, 因为这样简单的错误可以交给OSI上面的各层来恢复。如大多数局域网在数据链路层所采用的服务也是无确认的无连接服务。有确认的无连接服务是对无确认的无连接服务的一种改进。当提供这种服务时, 仍然不建立连接, 但是所发送的每一帧都进行单独确认。以这种方式, 发送方就会知道帧是否安全地到达, 如果在某个确定的时间间隔内, 帧没有到达, 就必须重新发送此帧。这类服务主要用于不可靠信道, 如无线通信系统。

在发送数据前, 发送方将数据进行分帧包装, 然后按发送请求、数据传输、发送完成的步骤进行通信。接收端收到请求信号后, 向用户询问是否接收。用户确认接收后, 接收端发出“请求发送文件”信号。发送端收到“请求发送文件”信号后, 开始发送数据。首先由发送端发出第一帧数据, 然后等待反馈。接收端收到一帧数据后, 若帧长度校验和错误则发出“请求重新发送帧数据”信号, 如果正确, 则发出“请求发送下一帧数据”信号。若发送端收到“请求重新发送帧数据”信号, 则重新发送先前发送的帧数据。若发送端收到“请求发送下一帧数据”信号, 则首先检查已经发出的一帧数据是否是最后一帧, 如果是则发出“发送完毕”信号, 否则, 发送下一帧数据。重复整个过程。当发送方发出“发送完毕”信号后, 关闭文件, 并提示用户“发送完毕”。接收端受到“发送完毕”信号后, 则把文件缓冲区中存储的数据写入磁盘, 然后关闭文件, 并向用户提示“接收完毕”。

3 结束语

从上面的分析可以看出, 基于有确认的无连接服务的串口通信帧同步方法是本文中提出的三种帧方法中最优的, 结构清晰且系统资源利用率高。串口数据传输时在每一帧都采用了发送/应答/重连/失败的方式进行。克服了数据帧传输在RS-232接口中低速率、无线信道不可靠性以及整个通信系统的开销等制约因素。需要指出的是本协议仍有一些不完善的地方, 比如安全性没有考虑等, 这些不足都有待于以后进一步的优化。

参考文献

[1]陈启美, 李嘉.现代数据通信教程[M].南京:南京大学出版社, 2000, 3.

[2]王达.网络工程师必读:网络工程基础[M].北京:电子工业出版社, 2006, 7.

远程维护系统串口通信协议研究 篇2

1 分析并建立串口通讯协议

1.1 分析

整体上来看, 串口通讯协议设计主要是在面向连接服务的基础之上的。任何装备对于通信协议的标准都是不同的, 这是因为各个研制装备的单位往往都会结合自身的需求以及实际设计型号来制定的, 对于信息帧结构也有较多不同的种类, 同时在通讯协议中, 各个部分内容当中位数也有一定的差异, 对数据进行编码的方式自然也不一样。所以, 并不能实现不同装备之间信息共享的操作。另外, 还有一部分装备并没有设置信息接口, 导致设备数据无法进行传输, 自然就无法实现远程控制设备。

1.2 建立

结合装备运行的实际情况, 制定通讯协议需要令其能够实现对远程设备进行控制以及维护的功能, 还要在此基础之上确保空间充足, 以便设备进行功能扩展, 在通讯协议当中, 还需要拥有控制设备、监视参数、设置参数等有一定关联的内容。对现有装备所拥有的通讯协议进行分析和设计的基础之上, 构建出能够满足装备的实际情况的一个通讯协议规范, 它可以比较严格地对信息帧格式和其他的帧格式之间位数展开规定, 按照协议, 可以将其分成五类不同的帧结构, 不同的帧结构设计类型都会和硬件间优化融合综合起来进行考虑。

2 设计分析五种帧结构

2.1 握手类

这种帧结构直接将设备和接口连接起来, 信息接口会定时传送询问帧到设备当中, 假如此时装备处于开启状态, 装备就会将回应帧传输给接口, 在接口收到回应帧之后, 双帧联动, 就能够实现数据的传输, 达到远程控制的目的。

2.2 控制类

这种帧结构将控制功能的实现作为主要目的, 它可以对设备进行诸如开机或者关机等控制操作, 在进入到这种状态下的时候, 接口需要先向整个设备输送控制帧, 在设备收到之后, 就可以立刻执行这些控制类帧当中的指定命令, 并且发送回应帧给接口, 待接口收到之后, 就可以标记这项操作任务已经完成了。

2.3 检测类

这种帧结构能够很好地实现检测类的相关功能, 正确利用检测帧, 我们能够对设备的各项系统参数以及运转状态展开系统的检测, 在被控制的设备收到接口所传输的监测帧之后, 结合信息帧当中的请求, 向信息接口传输拥有监测内容的对应帧。在设备接收了这一对应帧之后就会在短时间内立刻进行信息整合, 与此同时对其进行分析, 保证数据信息高度的安全以及稳定。

2.4 维护类

这种帧结构针对的是拥有维护性能的设备所适用的, 它能够对受到控制的设备参数进行必要的设置, 进而实现远程维护设备。其具体的操作流程如下:信息接口先向对应设备传输要进行读取的设备参数的信息帧, 设备收到了信息帧后, 结合信息帧当中所涵盖的内容, 传输响应帧到接口当中, 这一过程当中, 响应帧当中包括信息帧当中全部消息内容, 在接口收到了响应帧之后, 结合响应帧当中的消息, 对消息进行适当的修改以及设置, 全部完成之后, 可以向设备传输维护类的帧, 在设备收到维护帧后, 就可以依照维护帧当中的一些信息来对设备进行适当的维护以及设置操作。

2.5 补充类

通常来说这种帧结构都是在设备以及接口间进行信息帧传输的过程当中, 结合传输的信息帧长度、帧结构以及数据的字节数来进行精准判断。不过, 假如数据长度太大, 不能通过一帧来进行传输的时候, 就需要借助补充帧结构的作用。先发送并没有进行校验的帧, 随后自动传送, 在接口收到包含在补充信息帧当中的命令后, 就可以标记这次数据通讯活动完毕。

3 传输数据和远程维护系统具体实现

3.1 传输数据的流程

微机传输请求信息, 到达设备之后, 被控制的设备会先对信息帧进行解码处理, 结合协议当中的有关规范, 在存储器当中适当地抽取需要的消息, 再通过ARM来进行适当的处理, 结合规定当中的格式, 借助串口, 通过信息帧的形式来发送需要的数据信息, 到达微机之后, 微机接收信息帧, 借助其中远程维护软件和协议当中所规定的格式来解码信息帧, 从中提取有效的信息, 在相应的区域当中显示指定的数据信息。

3.2 实现远程维护系统

整体上来说, 远程维护控制这一系统的主要结构包括远程维护中心、网络组成软件以及设备接口信息终端这样的三个部分所组成, 它可以很好地实现对各个被控制的设备进行监视以及维护的目的, 通过信息之间的相互传输以及对彼此信息进行破解的过程来实现信息分析, 进而能够及时且有效地实现对被控设备进行远程监控的目的, 继而对已经有的问题进行适当的预警和提示, 继而实现远程维护设备和远程控制设备的最终目的, 这一系统的组成可以用图1 来展示。

4 结语

设计串口通讯协议, 可以起到规范化通讯协议, 并统一提供理论支持的作用, 可以将装备当中的串口通讯协议进行统一, 与此同时, 还给装备远程维护的控制系统打造了比较理想的理论平台, 针对装备使用和发挥正常效能来说拥有比较现实的意义和价值。

参考文献

[1]杨光, 雷志雄.远程维护控制系统串口通信协议研究[J].电子技术, 2009 (01) .

[2]张海滨.浅谈远程维护控制系统的串口通信协议[J].硅谷, 2010 (24) .

[3]何先波, 钟乐海, 芦东昕.远程串口调试通信协议在嵌入式软件调试器设计中的应用[J].西华师范大学学报:自然科学版, 2004 (01) .

[4]耿铁柱.基于GPRS的控制与保护的远程监控系统的研究[D].沈阳工业大学, 2012.

串口数据通信协议 篇3

关键词:串口通信,协议格式,议分析器,校验和

尽管网络的发展使得越来越多的设备更多地使用网络,而不是使用串口,但细究其开发过程,串口仍不会在近期消失[1]:一则是因为出于开发周期、成本、复杂程度考虑,对于简单的设备不可能全部使用网络接口;再则在大部分硬件开发过程中,本身就使用了串口作为上传和下载程序的手段,在此情况下,串口通信从设计的时候就存在[2]。因此,串口通信仍有大量市场。

由于历史原因及硬件设备的多样性,串口通信参数组合多样、格式各异,没有统一的协议[3],这给调试和开发带来了巨大的困难。为了从众多的协议中找出规律,本文在众多串行通信协议的基础上,分析出一种通用的串口通信格式,进而设计出一套通用的串口通信协议分析器。

1 串口通信分析

串口是一种设备间通用的通信协议,该协议不同于网络通信,该通信方式一般只有点对点的模式[4]。考虑到计算机一般只有两个物理串口,因此,如果计算机需要控制更多的硬件设备,就需要通过PCI多串口卡、USB转多串口设备或更专业的NPort等串口交换机来实现。

1.1 串口协议分析

早期的串口通信RS232标准是EIA与BELL等公司一起开发并于1969年公布的通信协议,随后又出现了RS422、RS485等改进的数据通信接口[5]。在通信之前,通信的双方需要先约定通信所使用的电气参数,然后才能通信。通信的过程中,串口按位(bit)发送和接收字节,由于这种模式速度较慢,所以这种模式较适合于数据传输速率在0~20 000 bit/s范围内的通信。

串行通信接口中有几个重要的概念,分别是波特率(BPS)、数据位(Data)、停止位(Stop)、校验位(Parity)、流量控制位(FlowCtrl)。要想正确对设备进行监控,就必须知道要监控的设备这几个参数的值,否则就无法实现正确地通信[6]。

该通信接口的缺点也是显而易见的:

1)接口拔插不方便,在通电状态下直接拔插容易烧坏接口电路,因此只能在关机状态下才能拔插,且物理特性决定其不能象以太网网线RJ-45接口一样方便。

2)速度慢,以最常见的组合“BPS=38 400, Data=8,Stop=1,Parity=无,流控=无”来算,每秒的数据量是:38 400/[(8+1)×1 024]≈4.2 KB,该数据量很难满意大通讯量的要求。

3)由于数据较慢,因此常常出现数据正在传送的一瞬间进行了读取操作,而导致只读取了数据的前一部分,后一部分需要再读一次。

4)协议虽然很简单,但参数组合较多,对于不知道具体参数的设备,很难确定其最佳参数组合。

5)由于“串行”通讯的特性,无法采用多线程编程。Port口独占,一旦被占用,别的程序就无法再作用。

1.2 几种常见的串口协议格式

下面以不同行业中、主流设备的串口通信协议为例,说明一下常见的几种协议格式[7]:

1)MODBUS协议:MODBUS是应用于控制器的一种通用语言,成为事实的工业标准之一。该协议首字节必须是0x3A,第二字节是设备地址,第三个字节开始是“命令”和“参数N”,参数的有无及个数多少取决于“命令”本身的要求,参数后是CRC校验和,在命令的最后还要加上一个回车符(0x0D)。

2)VDCP协议:VDCP(Video Disk Communication Protocol)是目前视音频行业通用的协议,很多厂家数字视频服务器支持该协议,该协议首字节必须是0x02,第二字节是从“命令”到“参数N”之间的字符个数,第三、第四字节是“命令”,随后是“参数1”到“参数N”,其中所有参数的有无及个数多少取决于“命令”本身的要求,参数后是校验和。很显然该协议长度是变长的,协议字符都不是可见字符。

3)Metiq、CPI类设备协议:该类设备主要用于广电行业的转解码,每一类设备本身又分几十个型号,每个型号都因功能不同而协议不同,但协议格式都是相似的。所有协议首字符都是字符“{”,第二个字节是命令,包含了大小写字母、数字、符号等所有可见字符,第三个字节是参数,参数的有无及个数视命令而定,随后的是尾字符“}”,最后是可见字符校验和。该协议长度同样是变长的,但协议所有字符都是可见的字符。

4)支持终端类操作的设备协议:有很多设备既可通过串口直接收发命令,也能以终端的方式,象Telnet一样远程登录到设备上,输入命令并执行。这种协议以回车结束,所有字符都是可见字符,通常的格式是:“命令+空格+参数+回车”。设备如:ACU卫星天线、SA光端机、

5) 一些特殊的设备协议:还有一些设备协议特殊,如自动增益设备本身不需要发送命令,而设备会自动定时回送所有设备参数;又如某些UPS和空调设备,只需向设备发送一个字节的指定命令,设备就回送所有设备参数。这些形式过于特殊,不在讨论之列。

1.3 协议要素

通过对上述常用串口协议的分析,可以发现串口协议具备如下几个要素[7]:

首尾标识符:为了判断接收到的命令是不是自己的协议,很多协议规定了首标识符或同时规定了首和尾标识符。这样做的最大好处就是当接到命令后,首先判断首尾标识符是否正常,如果不正确,则直接退出语法分析。

地址:有些设备具备串联或级连的特性,为了区分这些设备,会在设备硬件中用一个可修改的开关值作为设备的地址。命令在串口设备所组成的网络中以“广播”的形式发出,设备在接到广播包后,首先判断地址值与自身所设的地址值是否一致,一致的处理,反之退出语法分析。

长度:即使不是变长的协议,很多协议也会加一个长度位来表示全部或某一部分命令的长度,长度字段也可以用来判断设备返回命令是否正确。

命令:这是协议最主要的部分,也是控制设备的关键,有些复杂的设备对命令还会做出分组,如查询类命令、设置类命令、驱动设备动作类的命令。

参数:对于复杂的设备,命令还会跟着一个或多个参数来表示命令的细节处理。对于变长的参数,通常还会在参数前加上“参数长度”位。

校验和:串口通信本身具有易受干扰的特性,如果在命令传送时受到干扰,则可能导致干扰期间的数据出错,为了检查出这种错误,常用校验和进行检错或纠错。

1.4 校验算法

很多串口协议的命令中,有校验和,其算法一般有如下几种[8]:

1)异或(XOR)算法:异或算法是指定位置字符之间的异或操作。

2)求和(SUM)算法:求和算法是指定位置字符之间的求和操作。

3)双算法:该算法是避免求和算法中会出现“正零”和“负零”的问题,具体计算方法是先用求和算法,然后再用256减去所求的和。

4)循环冗余校验码(CRC)算法:该算法以某种规则将要校验的数据转变成某多项式,然后利用多项式除以指定的生成多项式,最后将所除的余数作为校验和。

5)可视字符法:该算法常见于所有内容都为可显示字符的协议中。通常的校验算法是每个字节先减32,然后求和,最后再把和加上32。

需要说明的是,大部分协议的校验和多为一个字节,因此求和很容易导致溢出(即所求的和大于一个字节所能表示的最大数255),一般只需关注未溢出部分即可。

2 本文设计的通用串口通信协议分析器

通过上述分析,可以发现,虽然各硬件设备千差万别,但仍然可以找出其中的规律,通过这些规律即可设计出一个通用的协议分析器。

2.1 语法分析原理图

由图1可见,整个协议最多可以分为8部分,除了“命令”是必须的,其余都视具体协议而定。

1)首字符:

首字符一般由一个或两个字符组成,且内容是固定的。

2)设备地址:

具有联网的功能的设备,通常需要有一个地址位来相互区分,一般用一个字节表示。

3)长度:

长度一般是指协议中某几位可变长度字符的个数。

4)命令:

命令有些是一个字节,有些是两个字节,少数是多个字节,通常在设备协议中会有详细而明确的说明。

5)参数:

参数是协议中最难控制部分,因为参数的有无、多少、格式、是否还带有参数的长度都视具体的协议和具体的命令而定。

6)校验和:

校验和即上述所说的几种算法之一。

7)尾字符:

一般由一个或两个字符组成,且多数与首字符对应。

8)回车:

回车通常有一个(0x0D)或两个字符(0x0D,0x0A)组成。

2.2 相关程序设计

由于程序的流程图与语法图很相似,所以不再赘述。程序的设计只需要按语法分析中的各部分设计即可。

int Append(char *pItem, int nKeyLen, int nPos);//追加项目到发送缓冲区。

上面的函数会将参数指针pItem所指向的内容,按其有效长度nKeyLen,追加到由nPos的开始的命令发送缓冲区中,并返回nPos新的位置。

然后就可以调用该函数生成协议的各个部分。

if (bHaveItem[i]) //如果该设备协议中需要这一部分

nPos=Append((char *)pItem,nKeyLen,nPos);

2.3 脚本生成

有了语法分析图,则可以通过脚本的方式进行配置,通常脚本项需要具有如下几项:

名称、开始位置、长度、存放顺序、调用库函数、相关位(该项与其它相关的位)。

3 实例验证

实验以MODBUS协议为实例来验证本文设计通用串口通信协议分析器。经过所设计的协议分析器对MODBUS进行分析,可得如表1所示的分析结果。

从表1所示的分析结果可知,利用本文设计的串口通信协议分析器,可以有效地发现串口通信协议MODBUS的通用性并对此进行分析。

在实验中,也以其他协议为实例,例如VDCP协议、Metiq、CPI类设备协议等,来验证本文设计的协议分析器,其结果也较好地验证该分析器的可行性和实用性。

4 结束语

虽然同用串口进行通信,但由于设备不同,协议不同,所以每有新设备调试,都需要重新开发针对新协议的测试程序。而本文正是针对这一现象,通过分析各个协议的规律,从共性中找到一个通用的协议格式及设计方法,从而减少了测试的复杂性,提高了工作效率。

参考文献

[1]洪草根,安刚,朱文亮.基于WinCC的多串口通信研究与实现.工业控制计算机,2012;25(2):12—14

[2] Lázaro J I,Astarloa A,Zuloaga A.I2CSec:A secure serial chip-to-chip communication protocol.Journal of Systems Architecture,2012;57(2):206—213

[3]范高其,陈焰,蒋林杰.基于W77E58双串口通信的数据收发系统.贵州大学学报(自然科学版),2011;28(5):59—61

[4]许自敏,朱子焜.基于VB MSComm控件在PC机与单片机串口通信中的应用.工业控制计算机,2011;24(6):104—106

[5] Aziz S M.A cycle-accurate transaction level SystemC model for a ser-ial communication bus.Computers&Electrical Engineering,2009;35(5):790—802

[6]徐嵩,孙秀霞,董文瀚.基于DCOM的无人机地面站串口通信模块设计.计算机工程与设计,2011;32(9):3213—3218

[7]李煊,丁为.常用设备串口通信协议及其应用.自动化仪表,2011;32(10):82—85

串口数据通信协议 篇4

通用计算机系统与嵌入式计算机系统的专业化分工发展, 使得20世纪末、21世纪初计算机技术飞速发展。计算机专业领域集中精力发展通用计算机系统的软、硬件技术, 不必兼顾嵌入式应用要求, 通用微处理器迅速从286、386、486到奔腾系列;操作系统则迅速扩张计算机基于高速海量的数据文件处理能力, 使通用计算机系统进入到尽善尽美阶段。

本文通过学习S3C2410A来了解和掌握嵌入式系统上硬件和软件开发的一些基本框架, 通过学习这一芯片能够掌握开发的流程。主要研究内容分两方面:一方面是S3C2410A的Vivi-boot的分析, 另一方面则是在其基础上进行串口通信协议的设计。

(1) 对于Bootloader的分析, 任务主要集中在S3C2410A的初始化方面, 也就是ARM汇编语言部分。通过学习这一部分可以了解和掌握Bootloader的流程及S3C2410A的体系结构, 而且在以后串口通信时还需要修改初始化串口。

(2) 在通信协议的设计方面就是将两个S3C2410A的串口连接起来, 每个设备分别连接一台主机, 以实现主机之间的通信。具体涉及到串口的使用、Vivi-boot已有的程序和接口, 还有烧写程序。

2 相关介绍

2.1 Vivi概述

Vivi是由mizi公司为ARM处理器系列设计的一个Bootloader[1,2], 因为Vivi目前只支持使用串口和主机通信, 所以必须使用一条串口电缆来连接目标板和主机。它有如下作用:把内核 (ernel) 从Flash复制到RAM, 然后启动它;初始化硬件;下载程序并写入Flash (一般通过串口或者网口先把内核下载到RAM中, 然后写入到Flash) ;检测目标板 (Bootloader会有一些简单的代码用以测试目标板硬件的好坏) 。

2.2 三星S3C2410A处理器简介

Samsung公司推出的16/32位RISC处理器S3C2410A[3], 为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。为了降低整个系统的成本, S3C2410A提供了以下丰富的内部设备:分开的16KB的指令Cache和16KB数据Cache, MMU虚拟存储器管理, LCD控制器 (支持STN&TFT) , 支持NAND Flash系统引导, 系统管理器 (片选逻辑和SDRAM控制器) , 3通道UART, 4通道PWM定时器, I/O端口, RTC, 8通道10位ADC和触摸屏接口, IIC-BUS接口USB主机, USB设备, SD主卡和MMC卡接口, 2通道的SPI以及内部PLL始终倍频器。

S3C2410A采用ARM920T内核, 0.18um工艺的CMOS标准宏单元和存储器单元。它的低功耗、精简和出色的全静态设计特别适用于对成本和功耗敏感的应用。同样, 它还采用了一种叫做Advanced Microcontroller Bus Architecture (AMBA) 新型总线结构。

3 串口通信协议的设计

新协议的设计要包括协议格式、协议运行流程和协议实现方法等方面的考虑。而且为了实现该协议的可靠性传输, 本协议还要考虑传输过程中通信报文丢失、出错或者超时等情况的处理。

3.1 串口通信的数据帧及应答帧格式

(1) 数据帧格式, 如图一所示。

0~2 (bit) :起始位为101;3 (bit) :0为数据;4~5 (bit) :帧号, 00、01、10、11;6~13 (bit) :数据;14 (bit) :奇校验位;15 (bit) :结束位为!。

(2) 应答帧格式, 如图二所示。

0~2 (bit) :起始位为101;3 (bit) :0为数据;1为应答;4~5 (bit) :帧号, 00、01、10、11;6~13 (bit) :8位空闲, 程序中直接置为********;14 (bit) :奇校验位;15 (bit) :结束位为!。

(3) 串口通信协议设计流程如图三所示。

4 实验平台的搭建

4.1 实验环境

实验平台使用以S3C2410A为处理器的核心板和扩展板。PC和平台的软件环境分别使用windows XP操作系统和redhat linux9.0操作系统。串口通信协议设计需要在Vivi基础上实现, 由于整个Vivi是在系统前下载到芯片中执行, 所以一些标准的C语言库函数便不再使用, 如果需要使用的就必须自己编写。Vivi已经实现了一部分函数像printk () 、mmalloc () 、delay () 和读写串口putc () 、getc () 、putstr () 等等。原来协议的设计是与Zigbee通信, 因为一些硬件上的原因改为2个2410通信, 中间的Zigbee只完成传送数据的功能。如图四所示。

4.2 Vivi第一阶段的分析与修改

Vivi启动阶段主要分析了Vivi的第一阶段即初始化硬件方面, 包括异常中断向量表、关闭看门狗计时器、屏蔽中断和子中断、设置CPU频率、初始化LED、初始化内存和初始化UART, 这里不对具体代码进行描述。具体修改如下:

(1) 实验室核心板上的S3C2410A频率只有为50MHz时才能正常作, 所以需要在初始化部分将Vivi设置的200MHz改为50MHz, 并修改为支持50MHz、100MHz、135MHz、152MHz、200MHz。

(2) 由于串口初始化默认是初始化UART0, 而在后面的串口协议实现需要UART0、UART1, 所以需要修改初始化UART, 部分因为涉及到具体代码的修改, 这里只给出修改的方法, 代码省略。

4.3 实验结果

实验在Linux Redhat9.0虚拟机下完成的, 将已经编译成功的程序烧写进芯片中执行, 在PC端运行烧写程序, 最终在PC端得到结果。

(1) 编译:编译阶段执行make后与编译成功后的烧写结果如图五所示。

(2) 协议运行的开始信息如图六所示。

(3) 从PC、Zigbee端正常取数处理如图七 (a) 所示, 从PC、Zigbee端正常取数处理但从Zigbee端的校验位不正确如图七 (b) 所示。

(4) 收到Zigbee端应答停止计时器计时, 如图八 (a) 所示, 发送给Zigbee的数据超时重发如图八 (b) 所示。

(5) 通信对端接收到的结果如图九所示。

5 结束语

本文在处理器S3C2410A的体系结构和特性的基础上, 提出了一种基于三星S3C2410A的串口通信协议, 提供了一种安全可靠的串口通信手段。并详细分析了新协议的格式与流程。最后以S3C2410A为处理器的核心板和扩展板搭建的拓扑中实现和验证了新设计的协议。实验结果显示, 在构建以S3C2410A为处理器的设备上可以成功运行本串口通信协议, 并且本协议通过实现超时、重传机制来完成协议的可靠性设计。

参考文献

[1]宋国军, 张侃谕, 林学龙.嵌入式系统中U-Boot基本特点及其移植方法[J].单片机与嵌入式系统应用, 2004, (10) :78-81.

[2]李汉强, 邱巍.基于Intel PXA26X处理器的BootLoader的设计与实现[J].武汉理工大学学报 (交通科学与工程版) , 2003, (06) :770-773.

基于单片机的数据串口通信研究 篇5

1.1 关于数据串口通信

数据串口作为一种新的通信方式可以将通信技术与计算机技术的两者优点相结合, 所说的串口通信就是以数据的信号线、控制线以及底线等线路来与外部的设备和计算机相连, 然后在通过按位的方式将数据进行传输的通讯方式。同时, 在计算机的领域之中, 数据串口其实也是一种通用的通信设备的协议, 在仪器仪表的设备之中它也是一种通用的通信协议。简单来说, 数据的串口通信其实就是在串口上将字节进行发送和接受的时候按位进行, 数据线的数量少, 远距离通信中的成本可以大大的节省。

1.2 数据串口通信的主要参数

在进行串口的数据通信的过程中, 有五个主要的参数, 他们是:波特率、数据位、起始位、停止位和奇偶校验。当在两个端口之间进行数据通信的时候, 必须要与相应的参数相互匹配, 才能保证数据传输的正常顺利进行。

2 数据串口通信的方式

通常来说, 数据串口通信的方式主要有同步通信和异步通信两种。

2.1 同步通信方式

同步通信的方式是以一帧数据的起始位到终止位来作为一帧数据传输的开始与结束标志。同步通信方式的一个数据块所有输送字符连接在一起的, 当输送数据前面增加特殊的同步字符时, 它的起始信号是同步字符, 并且在数据块的后面增加相应的校验字符。同步通信方式中, 字符之间是没有间隔的, 因此, 同步通信的优点就是具备较高的通信效率, 通信过程中也会在几十到几千波特之间, 但是也存在一定的弊端, 就是由于同步通信方式在进行数据传输的双方要在时钟之上保持发送端与接收端的同步, 所以, 传输的过程就要求具备构造复杂的硬件设备。

2.2 异步通信方式

异步的通信方式就是以独立的字节而进行数据的传输, 并且每一个自己的前面都存在起始的信号, 后面的字节也有一个或多个终止的信号。在通信的过程中, 一帧数据是从起始信号到终止信号结束, 当数据进行传输时, 字节就会向后移动, 字节的起始位置也会从标志位到空白的一次迁移, 而在传输结尾的时候就使用一个或者多个终止信号, 通过这样的方式可以让传输线回到标准的状态。然后, 当这一个过程结束的时候, 数据传输就会像下一字节去发送。异步通信的优点是数据接送双方进行通信的时候, 双方的时间存在的误差可以起到缓冲的作用, 并且是允许较小的频率漂移的。异步通信的缺点就是当进行数据传输的时候, 会导致传输的效率降低, 因为传送的时候每个自己都会有一些标志信息作为附加, 这样就会大大的降低数据传输的速度。

3 基于单片机的数据串口通信研究

3.1 通信过程分析

在通常的情况之下, 首先要就进行发送行为, 也就是单片机在数据的寄存器中进行数据的写入, 然后在对数据进行传送的过程, 与此同时, 寄存器中的读取数据的过程在开始进行了, 整个单片机与串行接口在通信的过程中, 单片机会发出命令帧格式来对可编程的逻辑进行控制器的命令发出, 在命令结束的时候, 可编程逻辑控制器就会对单片机的命令及时的做出反应, 数据在通过串口通信协议发送信息的时候一般都是要转化为二进制的, 进而对数据的寄存器通过单片机来传送信息。

3.2 单片机显示设计

单片机现实设计的过程主要有两种方式, 即静态显示驱动和动态显示驱动。动态显示驱动是通过数码管来动态显示的, 在这个过程中, 并联起所有的选线路, 通过八位的I/O装置进行控制, 单片机的其他I/O口作为数码官位选线, 将显示的数字进行相应的解码译码, 通过对其的控制, 相应的数码管就会显示, 与之不匹配的就不会显示。静态驱动的显示方式通常是采用直流驱动的, 因此在实际过程中会有许多不便, 使用率不高。

3.3 矩阵式键盘接口

由于键盘中的案例需要较多的数量, 必须要通过合理的排列来减少I/O口的占有率, 一般情况下, 是采用矩阵式的键盘接口来确保每一条的水平线与垂直线可以在交叉处不直接的连通, 通过按键来加以连接作为合理的连接方式, 这样端口就可以以4*4的排列方式, 在这种排列方式之下, 会节省时间, 提高一倍的利用率。可这种方式在线路多的情况之下会有缺点, 就是在矩阵式的分布方式中, 当增加一条线便可以形成二十键的键盘, 当通过直接端口线, 使用矩阵方式可以起到好的效果。矩阵式的结构的效果很好但较为复杂, 识别度难度也大, 因此在确定矩阵键盘时按键的方式也是采用的行扫描法, 这种常用的按键识别方法就是在键盘是否下落做判断, 将全部行线到低电平, 对列线状态进行检测。当检测的过程中一旦发现电瓶较低, 则表示键盘的状态为按下, 当发现所有的列线为高电平, 则表示按键是按下的状态。当确认了是否按键之后, 就可以开始对具体的闭合按键确认了, 将行线置为低电平, 在确定某根行线位置是低电平后, 在对各列线的电平状态进行仔细检查。当发现这一列都为低电平时, 则证明按键的列线与低电平的行线交叉处是处于闭合状态的。

4 结语

正是由于单片机具有较高的集成度、便捷的嵌套功能以及较为低廉的价格, 使得其在如工业、商业等各个领域之中应用较为广泛, 通过单片机与PC串口进行数据传输, 可以有利于自动化生产的发展, 并且随着科学技术的不断研发, 单片机的功能在日趋完善, 更多的优势体现出来, 也为未来的更加智能化的方向做准备, 相信未来基于单片机的数据串口通信一定会更加的高效智能, 应用范围也会更加的广泛, 客户的满意度也会越来越高, 也会更大的促进我国经济的发展!

参考文献

[1]阮翔.基于单片机的数据串口通信研究[J].信息通信, 2015 (5) .

[2]李刘丹.单片机的数据串口通信研究[J].信息通信, 2015 (10) .

USB虚拟串口通信实现 篇6

本文中的智能家居控制系统采用基于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.

串口数据通信协议 篇7

关键词:Windows CE,串口通信,应用

引言

在通信和实时监控系统中,串行通信因其具有连接简单、使用灵活方便、数据传输可靠等优点得到了广泛的应用。Windows CE(简称Win CE)是微软推出的一个32位、多任务、多线程的完全抢占式的实时操作系统。Win CE系统以其良好的性能得到越来越普遍的推广[1]。

(1)Win CE下的串行通信简介

串口在Win CE下属于流接口设备,它是串行设备接口的常规I/O驱动程序调用和与通信相关的具体函数的结合。串行设备被视为用于打开、关闭、读写串口的常规、可安装的流设备。Win CE的通信函数和其它大多数Windows的通信函数相同。但仍有几点区别:

a.Win CE设备资源很少,存储器、显示器都很小,接口也比较少,而且根据实际情况变化很大;

b.Win CE只支持Unicode;

c.Win CE还有一些专门设计的控件,比如Command Bar;

d.Win CE不支持直接对串口的寄存器进行编程;

e.通信端口不能像文件一样被共享。

(2)Win CE下的串行通信基本方法

a.打开和关闭串口

在所有的流设备驱动程序中,均使用方法Create File来打开串行端口设备。如果打开串口成功,将返回打开串口的句柄。下面的代码是以读写方式打开串口COM3。

Windows CE规定,当引用一个流接口设备驱动程序时,应用程序使用三字符名,其后跟端口号和一个冒号。例如“COM3:”就表示串行端口3驱动程序。宏_T可以将字符串“COM3:”转成Unicode编码。

关闭串口可以调用Close Handle(m_h Comm)。释放串口资源。

b.配置串口

首先打开串口后,调用Setup Comm函数给串口分配一定大小的发送缓冲区和接收缓冲区;之后调用Get Comm Timeouts函数对读写串口进行超时设置;然后调用Get Comm State函数获得当前串口配置,然后根据需要修改DCB成员,用Set Comm State函数设置新的串口配置,最后调用Purge Comm函数清空串口的发送接收缓冲区。代码如下:

c.读写串口

调用Read File和Write File函数对串口进行读写。在通信过程中可能会发生错误,对有些错误通信将无法进行下去,必须调用Clear Comm Error函数清除这些错误[2]。这个函数还可以返回错误代码和当前通信状态缓冲区的内容。

Win CE不支持重叠I/O,如果在主线程进行大量读写串口操作时,有可能使整个程序陷入缓慢的串口等待中去,因此一般都采用多线程来进行读写串口操作。

d.通信事件

Comm Thread监视线程函数,在此线程函数中不停的调用Wait Comm Event()等待通信事件,当有串口事件发生时去判断是哪一种串口事件,如果是接收事件发生则调用Set ReadTo Port,如果实际发送事件发生则调用Set Write To Port,最后调用Wait For Multiple Objects,通过返回值来决定唤醒读还是写串口线程如果同时读写事件同时发生,则优先响应读串口线程。

1 串行通信的模型设计

1.1 多线程技术

在Windows CE中,线程以时间片为单位来运行,按一定的优先级将时间片段分配给各个线程,各个线程在各自的时间片段内共享。所有高优先级的线程都将在低优先级的线程之前运行。在可以调度被设定为特定优先级的线程之前,所有拥有高优先级的线程都必须被阻塞。同等优先级的线程以循环方式来调度。如果高优先级的线程停止阻塞,而低优先级的线程目前正在运行,则低优先级的线程会立刻被挂起,同时去调度高优先级的线程。低优先级的线程永远不会抢占高优先级的线程。这种方法能很好地实现抢占式多任务的处理,提高数据传输的吞吐量和通信的实时性[3]。特殊情况:一种是线程具有优先级THREAD_PRIOR-ITY_TIME_CRITICAL,它永远不会被抢占;另一种就是低优先级的线程拥有高优先级的线程正在等待的资源,出现优先级倒置。

下面是一个创建线程和线程函数的例子:

Create Thread函数的许多参数在Windows CE下都不支持,所以被设为NULL或0。第三个参数指向线程函数的开始,第四个参数是Create Thread函数传到线程函数的唯一参数。Create Thread函数返回线程句柄,当这个句柄不需要时,调用Close Handle函数关闭它。在线程函数体可以进行串口的读或写操作。

1.2 事件同步对象

对于在系统中运行的多个线程,需要协调它们的活动,也就是实现同步。在Win CE中,采用的方法是使用同步对象。一个线程等待一个同步对象,当用信号通知该对象时,解除阻塞正在等待的线程并调度该线程。同步对象包括事件和互斥体。

事件对象就是一种有两种状态-有信号和无信号的同步对象。调用Create Event函数创建事件后,事件自动被置为信号状态。事件可以被命名,从而被不同进程共享。通常的做法是采用多线程,一旦发现串口有预定事件时,用消息通知主线程请求相应的处理,主线程接收到发送来的消息唤醒相应的线程处理程序。各线程间以事件同步对象来实现同步、形成监视串口与读写串口的协调一致[4]。

2 市场应用

2.1 定位GPS

在车载定位系统中,导航计算机需要接受多种传感器的数据输入,其中最常用到的就是GPS数据。程序采用多线程,主线程负责消息处理,另外还有读写两个附加线程,使用一个事件触发。读线程负责从串口读回GPS数据,写线程由事件触发[5]。

2.2 医疗监护

基于ARM的嵌入式多参数网络监护仪主要面向医院、社区和家庭,具有成本低、功耗小、数据存储量大、数据处理速度快、便于远程医疗、能同时实现实时多任务的操作等各项优势,是现代医疗监护进一步智能化、专业化、小型化、低功耗的发展新方向,困此具有很广阔的市场前景。

2.3 工业控制

Cybectec建立了Substation Modernization Platform(变电站现代化平台,SMP),它是一种基于Win CE用以解决互通性问题的智慧化网关设备。借助Win CE所提供的优越互通性,Cybectec创建出一种从多种数据源整合数据、监视变电站/发电厂运行状况、并与远程能源管理系统进行通信的设备。

2.4 食品安全

FMC Food Tech选择了Win CE作为LOG-TEC Momentum系统的操作系统,这是他们的新一代杀菌控制系统。

Win CE提供的更富有吸引力的一个特性,是它的实时回应能力。Win CE通过优先权来运行中断执行绪,并且以一种确定性的方式来处理输入资料,能对时间敏感的I/O刺激做出高速的响应和反应。Win CE带来的最大好处是它能把LOG-TEC Momentum连接到种类众多的I/O设备上。I/O的扩展能力对于食品加工行业来说是特别重要的,因为它必须对杀菌过程进行跟踪和记录,以保证消费者买回家的食品的安全和质量能满足严格的国家标准。

Win CE的另一个主要优势是系统进入了Windows环境,这使操作员操作起来更加容易了。每个人对Windows环境都已经很熟悉了[6]。

结束语

以上给出了在Windows CE下的串行通信的基本方法及流程。利用多线程技术保证了通信的实时性和数据的吞吐量。也介绍Windows CE程序在不同领域应用情况,具有很大的市场前景。

参考文献

[1]许南雁,郝继飞.WindowsCE环境下单片机串行通信的设计与实现[J].自动化技术与应用,2005.

[2]Charles Petzold.WindowsCE程序设计[M].北京:北京大学出版社.

[3]贾广雷,刘培玉,耿长欣.多线程技术及其在串口通信中的应用[J].计算机工程,2003.

[4]陈淑珍,石波.基于Windows多线程环境下的串口通信[J].武汉大学学报(自然版),2000.

[5]www.DigiTimes.com[EB/OL].

上一篇:八面河油田下一篇:天津南开中学