串口几乎为所有计算机的装置通讯协议标准。请别与通用串行总线 (Universal serial bus,USB) 产生混肴。大多数的计算机均配备 2 组 EIA-232 架构的串行端口。串口亦为常见的通讯协议,适用于控制多种仪器设备,并可搭配 EIA-232 通讯端口使用多款 GPIB 兼容的装置。此外,用户可透过数据撷取的串口通讯功能,进而整合远程取样装置。请注意,EIA-232 与 EIA-485/422 亦可为所谓的 RS-232 与 RS-485/422。
串口通讯的概念极为简单。串行端口将同时传送并接收 1 个位 (Bit) 的信息字节 (Byte)。虽然此传输量低于并行通讯作业,却可传输完整的字节;适用于较长距离的通讯作业。以 IEEE 488 规格的平行通讯作业为例,设备之间的接线总长度不得超过 20米(65英尺);任两组装置之间的长度不超过 2米(6.5英尺)。而串口却可达最长 1200米(4000英尺)。
一般情况下,工程师均使用串行传输 ASCII 数据。并透过三种传输线完成通讯作业 - 接地线 (Ground)、传送线 (Transmit)与接收线 (Receive)。由于串口属于异步化,因此串行端口可于其中 1 个信道传送数据,并于另 1 个信道接收数据。其他通道可视情况而进行握手(Handshaking)。重要的串口特性为波特率 (Baud rate)、数据位、停止位 (Stop bit),与奇偶同位 (Parity)。若要沟通两组通讯端口,则必须符合这些参数:
1、波特率 (Baud rate) 为通讯的速度量测作业,显示每秒所传输的位数。举例来说,300 波特率即为每秒达 300个位。工程师所称的频率周期 (Clock cycle) 即为波特率;若协议呼叫信号 (Protocol call) 为 4800 波特率,意即频率为 4800 Hz。亦表示串行端口以 4800 Hz 的速率,进行数据信道的取样。常见的电话线路波特率为 14400、28800,与 33600。波特率当然可以大于上述这些数字,但这些速率将限制设备之间的距离。因此高波特率均用于装置距离相近的通讯作业,常见的即为 GPIB 装置。
2、数据位数 (Data bit),代表传输作业中的实际数据位。当计算机传送信息框架 (Frame) 时,实际数据总数可能不满 8 位。框架的标准数值为 5、7,与 8 位。应根据所传输的信息,选择所需的设定。举例来说,标准 ASCII 可为 0 ~ 127 的数值 (7 位)。延伸的 ASCII 则使用 0 ~ 255 (8 位)。若传输中的数据为标准 ASCII,则各个框架若能传送 7 位数据,即属高效率的通讯作业。1 个框架即为单一字节 (Byte) 的传输,包含开始/停止 (Start/stop) 位、数据位,与奇偶校验 (Parity)。由于所选的通讯协议将影响实际位数,因此可使用“框架 (Frame)”代表所有的范例。
停止位 (Stop bit) 可针对单一框架的通讯作业末端发出信号。常见数值为 1、1.5,与 2 位。由于数据将受到跨信道的频率所影响,而各组装置又具有自己的频率,因此任 2 组装置可能会稍稍落后同步化作业。因此,停止位不仅可指出传输作业末端,并可为计算机频率速度提供发生错误的空间。停止位所占的位数越多,则不同频率的同步化越具d性;但亦将拖慢传输速度。
3、奇偶校验 (Parity) 为串口通讯作业错误检查的简易形式。奇偶校验具分为 4 种类型 – Even、Odd、Marked,与 Spaced。亦可不使用奇偶校验。针对 Even 与 Odd,串行端口将设定奇偶校验位 (Parity bit,为数据位之后的最后 1 个位) 为 1 个数值,以确认该传输作业具有逻辑高位 (Logic-high) 位的 Even 或 Odd 数。举例来说,若资料为 011,针对 Even 奇偶校验的奇偶校验位则为 0,才能让逻辑高位位的数字为 Even。在奇偶校验为 Odd 的情况下,奇偶校验位「1」将导致「3」的逻辑高位位。Marked 与 Spaced 的奇偶校验将不会实际检查数据位,但会根据 Marked 奇偶校验设定高的奇偶校验位,或根据 Spaced 奇偶校验设定低的奇偶校验位。此将让接收装置了解位的状态,以进一步判定噪声是否使数据发生中断,或传送与接收装置是否尚未同步化。
2. EIA-232 概述EIA-232 为 IBM 兼容计算机架构的串口链接功能,可用以连接计算机与传感器/调制解调器,或用于仪器控制等许多功能。EIA-232 硬件可达最长 15 公尺的通讯距离。EIA-232 限用于计算机串行端口与装置之间的点对点连结。因此,计算机往往需要额外的 EIA-232 串行端口。标准计算机 EIA-232 串行端口与许多串行接口的制造商,将试图平衡 Win32 API 于串口通讯函数调用中的功能。Win32 API 原来是设计用于调制解调器通讯作业,且并未建置完整的 EIA-232 协议。基于此项限制,Win32 API 并无法沟通某些装置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)