持续更新中……(2018/6/25)

  • 串口通讯中的数据类型:

常用两种:

1.       Byte[] 数组:

a)        纯数字类型数据——转换、解析

b)        ASCII编码、ansi编码、GBK编码、Unicode编码、UTF-8编码、GB2312编码……——编码转换、解析

c)        混合型(以上两种的混合)——参考通讯协议

2.       文本字串:

a)        纯文本字串——解析

b)        十六进制的字符串、十进制的字符串——字符串转换成数字、解析

c)        编码的字符串数据——编码转换成字符串、解析

d)        混合型(以上三种的混合)——参考通讯协议

 

 

  • 串口通讯中的数据发送与接收方式:

通用的有一下几种:

1.       自发自收:

组合数据→发送→延时→主动接收→解析数据

串口通讯杂谈——持续更新中……

(串口驱动对象部分,是系统操作,不需展开)

关于延时:慎用Sleep、推荐使用Doevent

2.       定时器接收:

a)  发送数据单元:组合数据→发送→启用定时器。

b)  定时器接收:定时器循环接收→数据不为null→关闭定时器→读取数据→解析数据

注意:

 i.     根据使用定时器的不同,a)与b)不一定在同一个线程中。

 ii.     此定时器接收的特点是:只要已接收到的数据不为null就接收数据,否则循环继续。

3.       主动循环查询已接收的数据。满足条件后主动接收:

a)        发送数据单元:组合数据→发送

b)        主动循环查询、满足条件后主动接收:循环查询→满足条件→读取数据→解析数据

注意:

i.      b)一般使用定时器,根据使用定时器的不同,a)与b)不一定在同一个线程中。

ii.     所谓条件是指:

◇ 固定长度。

◇特殊结尾字符(系统定义的特殊数据、用户自定义的数据)

4.       主动循环查询状态标志。满足条件后主动接收:

a)        发送数据单元:组合数据→发送

b)        主动循环查询状态标志。满足条件后主动接收:循环查询→满足条件→读取数据→解析数据

注意:

 i.     一般使用定时器,根据使用定时器的不同,a)与b)不一定在同一个线程中。

ii.     状态标志指:CTS、DSR、RLSD、Ring变化。

5.       事件接收:

a)        发送数据单元:组合数据→发送

b)        接收事件:读取数据→解析数据

注意:a)与b)不一定在同一个线程中。

产生接收事件条件:

i.  协议接收(CTS、DSR、RLSD、Ring变化,产生事件)

 ii.固定数据长度接收(根据用户设置的接收数据长度属性而产生事件)

iii.特殊结尾字符接收(接收到系统定义的特殊数据、用户自定义的数据而产生事件)

 

 

  • 常用开发用RS232组件:……

◇微软提供的SerialPort组件

MSComm控件

第三方组件

API

Tony.SerialPorts.RS232组件

 

  • 线程问题:……
  • 三端时序:……

串口通讯杂谈——持续更新中……

何为三端:

所谓三端是指

1.        应用程序端:指的是运行于计算机端的客户程序(如EXE、DLL等等),就线程角度而言,此端包含:主线程、客户线程、串口事件线程。

2.        串口驱动端:指的是运行于计算机端的串口驱动程序。有三种情况:

a)        计算机本身带有RS232硬件接口:一般在安装板卡驱动时已集成安装串口驱动。

(优点:简单,不需单独安装。缺点:通讯质量中等、可用端口数量少、抗干扰能力一般。)

b)        计算机插接独立的RS232集成板卡:一般用于:计算机无RS232硬件接口;即使有RS232硬件接口,但数量不够,需扩展。需要单独安装相关驱动。

(优点:通讯质量高、控制能力高、可用端口数量多、抗干扰能力强。缺点:价格高、需单独安装驱动。)

c)        使用USB转RS232接线:一般用于:计算机无RS232硬件接口;即使有RS232硬件接口,但数量不够,需扩展。需要单独安装相关驱动。

(优点:数量扩展随意、价格便宜(别太便宜、便宜没好货)。缺点:通讯质量低、电平不稳定、某些产品不支持硬握手、抗干扰能力弱、不适合于工业现场、需单独安装驱动。)

(安装后在计算机系统的设备管理器中,会显示已安装的RS232可用的串口端口,如:COM1、COM2……)

串口驱动是以计算机硬件服务的方式存在(在计算机系统的设备管理器中禁用,将关闭服务)

3.        下位机端:指客户仪表、仪器、设备等。

为何要理解三端:

1.        排查通讯故障时,要以此三端+通讯线为对象逐个排查。具体每个又分为:应用程序的软排查(软件设计问题、协议匹配问题……)、串口驱动端的软排查(指驱动、服务……)、串口驱动端的硬排查(是否插接正确、可靠……)、通讯线的硬排查(线质量、线长度、线抗干扰能力、线接驳是否正确……)、下位机端软排查(协议匹配问题……)、下位机端硬排查(端口测试……)

2.        应用程序端、下位机端无法直接交互,是通过串口驱动端为中介进行交互的。

3.        要理解应用程序端在通讯时的阻塞、假死现象,需了解三端的交互模式。

三端建立流程:

三端需要注意的问题:


  • 响应时间:……
  • 获取可用串口:……
  • 关于USB—RS232转接线:……
  • 超速阻塞:……
  • 编码转换:……
  • 进制转换:……
  • 硬协议/软协议、硬握手/软握手:……
  • 物理串口形式:……
  • 通讯线脚定义:……
  • 连接说明:……

相关文章: