佛山市南海瀚順機動車檢測有限公司 羅永康
隨著計算機及網絡技術的飛速發(fā)展,生產第一線的儀器設備有序地完成著各自的操作,使得工業(yè)自動化的傳感系統(tǒng)、控制系統(tǒng)、管理系統(tǒng)的功能得以充分發(fā)揮,從而實現了工作效率上的優(yōu)化。在工業(yè)自動化中,需要對現場儀器設備的數據進行實時精確的處理,同時儀器設備又要完成自身內部的各種指令。通常以工控機為上位機,單片機為下位機,單片機直接面對被控制對象。它們相互間有著大量的數據需要交換,而這些都是由RS-232串口通信來完成的。本文論述RS-232串口通信在汽車檢測儀器設備上的應用,并結合RS-232串口通信的相關知識來探討其在汽車檢測儀器設備上的使用注意事項和故障處理方法。
目前,在我國,在用汽車檢測是國家強制性的,包括安全檢測、性能檢測和環(huán)保檢測,在用汽車執(zhí)行國家相關標準并按要求進行相應的檢測。汽車的檢測項目由檢驗人員操作各工位上的儀器設備來完成,各工位上的儀器設備通過RS-232串行通信接口連接至工控機并與其通信,工控機連接局域網,服務器連接外域網平臺,具體的工作示意如圖1 所示。其中,使用RS-232串口通信的汽車檢測儀器有尾氣分析儀、不透光煙度計、雷達外廓檢測儀、油耗測試儀、前照燈檢測儀、聲級計、路試儀、GPS速度測試儀、發(fā)動機轉速測試儀和環(huán)境氣象站;使用RS-232串口通信的汽車臺架設備有底盤測功機、車速檢測臺、制動檢測臺、側滑檢測臺、軸重檢測臺和懸架裝置檢測臺。

圖1 RS-232串口通信在汽車檢測儀器設備中應用
RS-232C標準(協議)的全稱是EIA-RS-232C標準,是常用的串行通信接口標準之一。其中EIA(Electronic Industry Association)代表美國電子工業(yè)協會,RS(Recommeded standard)代表推薦標準,232是標識號,C代表RS-232的最新一次修改(1969年),在這之前有RS-232A、RS-232B。RS-232C標準的全名是“數據終端設備(DTE)和數據通信設備(DCE)之間串行二進制數據交換接口技術標準”。該標準規(guī)定了串行通信接口的連接電纜、機械特性、電氣特性、信號功能及傳送過程。
由于RS-232C并未定義連接器的物理特性,因此出現了DB-25、DB-15和DB-9各種類型的連接器,其端子定義各不相同。其中,DB-25、DB-9連接器的結構示意如圖2所示。

圖2 DB-25、DB-9連接器的結構示意
DB-25連接器中RS-232標準接口有25條線,分別為4條數據線、11條控制線、3條定時線和7條備用未定義線,其中常用的有9條線,其端子的信號說明見表1所列。

表1 DB-25連接器中RS-232標準接口常用端子的信號說明
大多數汽車檢測儀器設備采用單片機89C系列來實現自動控制及數據傳輸,并通過RS-232接口與上位機進行數據通信。常用的物理接口有以下2種。
2.4.1 上位機(計算機)和下位機之間的物理接口
計算機使用DB-9接口作為COM1口,下位機使用MAX232芯片,建立RS-232串口通信的具體方法如下。
首先需要確認計算機DB-9接口連接器、MAX232芯片上TXD(發(fā)送)、RXD(接收)、GND(信號地)端子。根據計算機DB-9接口連接器的端子定義,得知端子2為RXD(接收)端子、端子3為TXD(發(fā)送)端子、端子5為GND(信號地)端子;根據MAX232芯片的端子定義,得知端子7為TXD(發(fā)送)端子、端子8為RXD(接收)端子、端子15為GND(信號地)端子。接著將計算機DB-9接口連接器的端子2與MAX232芯片的端子7連接;計算機DB-9接口連接器的端子3與MAX232芯片的端子8連接;計算機DB-9接口連接器的端子5與MAX232芯片的端子15連接并形成公共接地。具體的線路連接示意如圖3所示。

圖3 計算機和MAX232芯片的連接示意
2.4.2 上位機(計算機)、單片機89C系列和MAX232芯片之間的物理接口
汽車檢測系統(tǒng)中的儀器若要實現自身的操作功能,除了需要與計算機通信外,還需要與單片機進行數據或指令交換。MAX232芯片內部集成有2個RS-232驅動器,同時滿足計算機和單片機的通信要求。MAX232芯片上的其中一組端子7、端子8與計算機連接通信,另外一組端子9、端子10與單片機連接通信。具體的線路連接示意如圖4所示。
2.5.1 波特率的概念
在串行通信中,用“波特率”來描述數據的傳輸速率。所謂波特率,即每秒傳送二進制數碼的位數,其單位為bps。RS-232C標準中規(guī)定的傳送速率有50 bps、75 bps、110 bps、150 bps、300 bps、600 bps、1200 bps、2400 bps、4800 bps、9600 bps、19200 bps。如果設定數據傳送的波特率為2400 bps,采用N.8.1幀格式(10位),則1 s傳送字節(jié)為2400個,那么字節(jié)中每一位傳送時間就是波特率的倒數:t=1/2400=0.00042 ms。
由此可知,根據數據傳送的波特率,就可以確定出每一位字節(jié)的傳送時間,實現I/O口的串行通信時序;一般可以靈活選擇波特率,但需要注意的是,上、下位機波特率要一致;對于設備是慢速的應選擇較低的傳送速率;反之,建議選擇較高的傳送速率。

圖4 計算機、單片機和MAX232芯片的連接示意
汽車檢測儀器設備的波特率一般選擇2400 bps,這樣能更好地實現過程數據的響應。
2.5.2 起始位(Start Bit)
起始位是用來表示單個數據包中的開始字符傳送位,起始位使數據線開始處于低電平邏輯0狀態(tài),提示接收器數據準備好開始傳輸。
2.5.3 數據位
數據位緊跟在起始位之后,它是衡量通信中實際數據位的參數,數據位的標準值是5位、7位、8位。比如,標準的ASCII碼是0~127(7位),擴展的ASCII碼是0~255(8位),具體的設置主要由傳送的信息量來決定。
2.5.4 奇偶校驗位
在串口通信中一般會設置校驗位,以數據位后面的一位進行檢錯,用一個值確保傳輸的數據有偶數個或奇數個邏輯高位。
2.5.5 停止位
停止位是用來表示單個數據包中的最后一位,其值為1位、1.5位或2位。因為所發(fā)出的數據包在傳輸過程中是有持續(xù)時間點的,所以需要停止位來表示傳輸結束。另外,對于每臺設備來說都會有自己的時鐘,很可能在通信中兩臺設備出現時鐘不同步問題,設置停止位能夠為計算機提供校正時鐘同步的機會。
2.5.6 串口通信參數的格式
串口通信參數的格式如圖5所示。
R S-232 C 規(guī)定采用負邏輯電平,DC(-15 V~-3 V)表示邏輯1,DC(3 V~15 V)表示邏輯0。在實際使用中,經過測量,得知-3 V~3 V為過渡區(qū),-9 V~-7 V為合理驅動電壓。

圖5 串口通信參數的格式
在TXD、RXD線上,邏輯1(MARK)為-3 V~-15 V;邏輯0(SPACE)為3 V~15 V;在RTS、CTS、DSR、DTR及DCD等控制線上,信號有效時為ON狀態(tài),接通,正電壓;信號無效時為OFF狀態(tài),斷開,負電壓。
2.6.1 PC機RS-232接口與單片機之間的電路
因為PC機RS-232接口信號電平與單片機的信號電平(TTL電平,TTL是Transistor-Transistor Logic,即晶體管-晶體管邏輯的簡稱,它是計算機處理器控制的設備內部各部分相互之間通信的標準技術)不一致,所以在它們之間需要設置電路來進行電平轉換。通常這個電路都選擇專用的RS-232接口電平轉換集成電路進行設計,如MAX232芯片、HIN232芯片等。
在實際應用中,MAX232芯片由單一的5 V電源供電,配備高精度的鉭電容RS來完成電平轉換,轉化后的串口信號TXD和RXD就可以直接與上位機連接通信了。
2.6.2 串口通信的傳輸電平數據幀格式
串口通信的傳輸電平數據幀格式顯示為0和1邏輯關系,TTL電平和RS-232電平的數據幀0和1邏輯關系是有區(qū)別的,即兩者高低電平不相同。例如,對于十六進制數據55aaH,當采用8位數據位、1位停止位傳輸時,首先傳輸第一個字節(jié)55,接著傳輸第二個字節(jié)aa,每個字節(jié)都是從低位向高位逐位進行傳輸。它在信號線上的傳輸波形如圖6和圖7所示。

圖6 TTL電平的串行數據幀格式傳輸波形

圖7 RS-232電平的串行數據幀格式傳輸波形
在RS-232串口通信中,數據是一位一位有序進行傳送的,以應答模式建立數據交換,具有特定的方向性。按照數據流的方向分為單工、半雙工和全雙工3種傳輸方式,大多數汽車檢測儀器設備采用半雙工和全雙工的傳輸方式,擁有強大的服務功能,且方便固件升級。
2.7.1 數據的發(fā)送與接收
如圖8所示,上位機通過TXD發(fā)送出數據,下位機通過RXD接收數據的流入;下位機通過TXD發(fā)送出數據,上位機通過RXD接收數據的回應,上位機、下位機一問一答完成數據或指令交換,按照設計好的程序執(zhí)行各自的運作。

圖8 上位機與下位機之間的數據通信
2.7.2 通信協議
上位機和下位機通信雙方共同達成應答模式的約定功能碼,包括對數據格式、同步方式、傳送速度、傳送步驟、檢錯方式、控制字符等做了統(tǒng)一規(guī)定,雙方共同遵守。
RS-232串口通信優(yōu)點包括以下3點。
(1)MAX232芯片因其性能可靠在行業(yè)內得到廣泛使用。
(2)一臺計算機或工控機可配備多個RS-232串行通信接口,其方法是直接在計算機或工控機的擴展槽上增加多串口卡(Moxa卡),安裝、維修簡單。
(3)RS-232串行通信接口一般只使用3條信號線,就能實現點對點的通信,有效節(jié)約了成本,并降低了因信號線過多而造成的信號干擾。
RS-232串口通信也存在其不足的地方,包括以下4點。
(1)傳輸速率低,在異步通信中很少被采用。
(2)抗噪聲干擾性差,嚴重影響了數據傳輸距離,尤其是在高波特率的情況下,傳輸距離更短。
(3)RS-232串行通信接口的信號電平較高,很容易會導致接口電路上的芯片燒壞。
(4)RS-232串行通信接口使用一根信號線和一根信號返回線而構成共地的傳輸形式,很容易產生共模干擾。
結合以往工作經驗,現將汽車檢測儀器設備上RS-232串口通信的使用注意事項及故障處理方法總結如下。
(1)設置RS-232串口通信有效的數據傳輸距離,理論的傳輸距離為10 m,一般限于15 m內;在實際使用過程中,普通三芯線建議不能超過60 m(室內);使用超六類網線建議不能超過150 m(室內)。另外,數據傳輸距離還需要考慮波特率的設置,一般情況下,低波特率比較穩(wěn)定,但是傳輸速率慢;反之,高波特率傳輸速率快,但容易出現被干擾的情況。
(2)在雷雨季節(jié),使用串口隔離器能夠更有效地保護儀器設備上的MAX232芯片。
(3)在汽車檢測線上,確保檢測系統(tǒng)、檢測儀器、檢測設備的正常運作是前提,否則會導致檢測項目數據的缺失,無法形成合格的車輛檢測報告單。若出現不能通信的故障,快速的處理方法是,對調儀器設備上的通信線進行確認,但需要注意設置對應的COM口和波特率的同步,從而快速確定上、下位機的問題所在。
(4)對于單片機串口通信的檢查,可使用萬用表分級測量TXD線的電壓(正常情況下,TXD線的電壓應為-10 V~-5 V),從而判斷是前、后級TXD線的故障,還是MAX232芯片故障。
(5)MAX232芯片一般設置為可插拔式,可直接對調MAX232芯片進行芯片故障的確認。注意儀器設備應處于斷電狀態(tài),并留意MAX232芯片連接器的連接方向。另外,在工業(yè)自動化控制中,MAX202芯片和MAX232芯片一般可以互換使用。
(6)使用串口通信測試軟件或監(jiān)控軟件做助手,能夠更好地判斷和處理串口通信的問題。