串口調(diào)試要注意什么?串口調(diào)試工具有哪些?
串口幾乎為所有計(jì)算機(jī)的裝置通訊協(xié)議標(biāo)準(zhǔn)。請(qǐng)別與通用串行總線 (Universal serial bus,USB) 產(chǎn)生混肴。大多數(shù)的計(jì)算機(jī)均配備 2 組 EIA-232 架構(gòu)的串行端口。串口亦為常見的通訊協(xié)議,適用于控制多種儀器設(shè)備,并可搭配 EIA-232 通訊端口使用多款 GPIB 兼容的裝置。此外,用戶可透過數(shù)據(jù)擷取的串口通訊功能,進(jìn)而整合遠(yuǎn)程取樣裝置。請(qǐng)注意,EIA-232 與 EIA-485/422 亦可為所謂的 RS-232 與 RS-485/422。
串口通訊的概念極為簡(jiǎn)單。串行端口將同時(shí)傳送并接收 1 個(gè)位 (Bit) 的信息字節(jié) (Byte)。雖然此傳輸量低于并行通訊作業(yè),卻可傳輸完整的字節(jié);適用于較長(zhǎng)距離的通訊作業(yè)。以 IEEE 488 規(guī)格的平行通訊作業(yè)為例,設(shè)備之間的接線總長(zhǎng)度不得超過 20米(65英尺);任兩組裝置之間的長(zhǎng)度不超過 2米(6.5英尺)。而串口卻可達(dá)最長(zhǎng) 1200米(4000英尺)。
一般情況下,工程師均使用串行傳輸 ASCII 數(shù)據(jù)。并透過三種傳輸線完成通訊作業(yè) - 接地線 (Ground)、傳送線 (Transmit)與接收線 (Receive)。由于串口屬于異步化,因此串行端口可于其中 1 個(gè)信道傳送數(shù)據(jù),并于另 1 個(gè)信道接收數(shù)據(jù)。其他通道可視情況而進(jìn)行握手(Handshaking)。重要的串口特性為波特率 (Baud rate)、數(shù)據(jù)位、停止位 (Stop bit),與奇偶同位 (Parity)。若要溝通兩組通訊端口,則必須符合這些參數(shù):
1、波特率 (Baud rate) 為通訊的速度量測(cè)作業(yè),顯示每秒所傳輸?shù)奈粩?shù)。舉例來說,300 波特率即為每秒達(dá) 300個(gè)位。工程師所稱的頻率周期 (Clock cycle) 即為波特率;若協(xié)議呼叫信號(hào) (Protocol call) 為 4800 波特率,意即頻率為 4800 Hz。亦表示串行端口以 4800 Hz 的速率,進(jìn)行數(shù)據(jù)信道的取樣。常見的電話線路波特率為 14400、28800,與 33600。波特率當(dāng)然可以大于上述這些數(shù)字,但這些速率將限制設(shè)備之間的距離。因此高波特率均用于裝置距離相近的通訊作業(yè),常見的即為 GPIB 裝置。
2、數(shù)據(jù)位數(shù) (Data bit),代表傳輸作業(yè)中的實(shí)際數(shù)據(jù)位。當(dāng)計(jì)算機(jī)傳送信息框架 (Frame) 時(shí),實(shí)際數(shù)據(jù)總數(shù)可能不滿 8 位??蚣艿臉?biāo)準(zhǔn)數(shù)值為 5、7,與 8 位。應(yīng)根據(jù)所傳輸?shù)男畔?,選擇所需的設(shè)定。舉例來說,標(biāo)準(zhǔn) ASCII 可為 0 ~ 127 的數(shù)值 (7 位)。延伸的 ASCII 則使用 0 ~ 255 (8 位)。若傳輸中的數(shù)據(jù)為標(biāo)準(zhǔn) ASCII,則各個(gè)框架若能傳送 7 位數(shù)據(jù),即屬高效率的通訊作業(yè)。1 個(gè)框架即為單一字節(jié) (Byte) 的傳輸,包含開始/停止 (Start/stop) 位、數(shù)據(jù)位,與奇偶校驗(yàn) (Parity)。由于所選的通訊協(xié)議將影響實(shí)際位數(shù),因此可使用“框架 (Frame)”代表所有的范例。
停止位 (Stop bit) 可針對(duì)單一框架的通訊作業(yè)末端發(fā)出信號(hào)。常見數(shù)值為 1、1.5,與 2 位。由于數(shù)據(jù)將受到跨信道的頻率所影響,而各組裝置又具有自己的頻率,因此任 2 組裝置可能會(huì)稍稍落后同步化作業(yè)。因此,停止位不僅可指出傳輸作業(yè)末端,并可為計(jì)算機(jī)頻率速度提供發(fā)生錯(cuò)誤的空間。停止位所占的位數(shù)越多,則不同頻率的同步化越具彈性;但亦將拖慢傳輸速度。
3、奇偶校驗(yàn) (Parity) 為串口通訊作業(yè)錯(cuò)誤檢查的簡(jiǎn)易形式。奇偶校驗(yàn)具分為 4 種類型 – Even、Odd、Marked,與 Spaced。亦可不使用奇偶校驗(yàn)。針對(duì) Even 與 Odd,串行端口將設(shè)定奇偶校驗(yàn)位 (Parity bit,為數(shù)據(jù)位之后的最后 1 個(gè)位) 為 1 個(gè)數(shù)值,以確認(rèn)該傳輸作業(yè)具有邏輯高位 (Logic-high) 位的 Even 或 Odd 數(shù)。舉例來說,若資料為 011,針對(duì) Even 奇偶校驗(yàn)的奇偶校驗(yàn)位則為 0,才能讓邏輯高位位的數(shù)字為 Even。在奇偶校驗(yàn)為 Odd 的情況下,奇偶校驗(yàn)位「1」將導(dǎo)致「3」的邏輯高位位。Marked 與 Spaced 的奇偶校驗(yàn)將不會(huì)實(shí)際檢查數(shù)據(jù)位,但會(huì)根據(jù) Marked 奇偶校驗(yàn)設(shè)定高的奇偶校驗(yàn)位,或根據(jù) Spaced 奇偶校驗(yàn)設(shè)定低的奇偶校驗(yàn)位。此將讓接收裝置了解位的狀態(tài),以進(jìn)一步判定噪聲是否使數(shù)據(jù)發(fā)生中斷,或傳送與接收裝置是否尚未同步化。
2. EIA-232 概述EIA-232 為 IBM 兼容計(jì)算機(jī)架構(gòu)的串口鏈接功能,可用以連接計(jì)算機(jī)與傳感器/調(diào)制解調(diào)器,或用于儀器控制等許多功能。EIA-232 硬件可達(dá)最長(zhǎng) 15 公尺的通訊距離。EIA-232 限用于計(jì)算機(jī)串行端口與裝置之間的點(diǎn)對(duì)點(diǎn)連結(jié)。因此,計(jì)算機(jī)往往需要額外的 EIA-232 串行端口。標(biāo)準(zhǔn)計(jì)算機(jī) EIA-232 串行端口與許多串行接口的制造商,將試圖平衡 Win32 API 于串口通訊函數(shù)調(diào)用中的功能。Win32 API 原來是設(shè)計(jì)用于調(diào)制解調(diào)器通訊作業(yè),且并未建置完整的 EIA-232 協(xié)議?;诖隧?xiàng)限制,Win32 API 并無法溝通某些裝置。