徐振中,張佳民,周 潔,孫立輝(通信作者)
(1 吉林化工學(xué)院信息與控制工程學(xué)院 吉林 吉林 132022)
(2 吉林市特種設(shè)備檢驗(yàn)中心< 吉林市特種設(shè)備事故調(diào)查服務(wù)中心> 吉林 吉林 132022)
從傳輸介質(zhì)來看,通信無非分為兩種,有線通信和無線通信[1]。在信息技術(shù)高速發(fā)展的今天,基于UART 的嵌入式設(shè)備之間可以非常簡便地通過各種通訊接口或借助各種無線模塊實(shí)現(xiàn)有線通信和無線通信。在對UART 的研究與應(yīng)用中,許多工程技術(shù)及研究人員設(shè)計出各種應(yīng)用方案。楊瀟等[2]針對單片機(jī)串行接口信號的楨格式,設(shè)計并實(shí)現(xiàn)了能夠直接對其進(jìn)行調(diào)制/解調(diào)的通信方案。翟玉文等[3]介紹了一種基于RS485 現(xiàn)場總線的溫度采集模塊的設(shè)計方法。王影等[4]利用Wi-Fi 無線模塊與UART實(shí)現(xiàn)了基于STM32 的無線通信,并通過上位機(jī)進(jìn)行數(shù)據(jù)收發(fā)。UART 在工程應(yīng)用中是廣泛的,本文以帶有ARM 處理器的SoC 電路板和帶有51 系列單片機(jī)的MCU 電路板通過UART 進(jìn)行通信為例,介紹串口通信原理,提出串口通信方案,驗(yàn)證并總結(jié)實(shí)現(xiàn)串口通信的條件。
UART 屬于異步串口通信協(xié)議的一種,串口通信中重要的參數(shù)包括波特率、停止位、數(shù)據(jù)位、奇偶校驗(yàn)位等[5]。通信前,通信雙方必須將這些參數(shù)約定相同。典型的串口通信僅需三根線,發(fā)送數(shù)據(jù)線、接收數(shù)據(jù)線和地線。要傳輸?shù)臄?shù)據(jù)會與起始位、停止位、校驗(yàn)位共同封裝成數(shù)據(jù)包。數(shù)據(jù)可以是5、6、7、8 位等,通信時,要發(fā)送或接收的數(shù)據(jù)包會被逐位進(jìn)行傳輸,數(shù)據(jù)傳輸速率由雙方約定的波特率決定。UART 數(shù)據(jù)幀格式及通信原理圖如圖1所示。

圖1 UART 數(shù)據(jù)幀格式及通信原理圖
常見的電平標(biāo)準(zhǔn)有TTL 電平、CMOS 電平、RS232 電平和RS485 電平等[6]。電平表示的是電壓的范圍。在數(shù)字電路中,由TTL 電子元器件構(gòu)成的電路所使用的電平就稱為TTL 電平,TTL 電路的電源工作電壓為5 V,所以TTL 電平是相對于5 V 而言的。相較于TTL 電平,CMOS 電路的電源工作電壓的范圍就比較寬了,為3~18 V,因此,CMOS 電平的具體數(shù)值要依據(jù)當(dāng)前電路的電源工作電壓來定。
RS232 和RS485 都規(guī)定了一種異步串行通信口的接口標(biāo)準(zhǔn)和總線標(biāo)準(zhǔn),包括通信雙方的電氣特性、接口的機(jī)械特性、傳輸速率等內(nèi)容。RS232 標(biāo)準(zhǔn)規(guī)定通信邏輯電平采用負(fù)邏輯,通信接頭常用DB-9 針連接頭。RS485 標(biāo)準(zhǔn)規(guī)定通信邏輯電平采用正邏輯,數(shù)據(jù)信號采用差分接收和平衡發(fā)送[7]。TTL、CMOS、RS232 和RS485 邏輯電平規(guī)定如表1所示。

表1 TTL、CMOS、RS232、RS485 邏輯電平規(guī)定
使用UART 進(jìn)行串口通信時往往需要涉及到電平轉(zhuǎn)換和協(xié)議轉(zhuǎn)換。嵌入式設(shè)備使用的電平為TTL/CMOS 電平,因此,當(dāng)嵌入式設(shè)備間采用RS232 或RS485 通信協(xié)議進(jìn)行通信時,就需要在TTL/CMOS 電平和RS232 或RS485 電平之間進(jìn)行轉(zhuǎn)換。一般在電子設(shè)備中,RS232 電平和TTL 電平之間的通信電平轉(zhuǎn)換芯片可使用MAX232[8],RS485 電平和TTL 電平之間可使用MAX485[9]。
在電腦上,串行通信端口的關(guān)鍵部件也是UART,串行通信端口即COM 口,簡稱為串口。由于歷史等原因,電腦串口使用的接口標(biāo)準(zhǔn)為RS232,臺式機(jī)或傳統(tǒng)筆記本主板通常會有DB-9 針連接頭,而隨著時代的發(fā)展,9 針串口已基本被USB 口所取代。當(dāng)用戶需要進(jìn)行串口通信時,就需要用到USB 轉(zhuǎn)串口模塊,這個模塊可看作是一個USB2.0 協(xié)議轉(zhuǎn)串口通信協(xié)議的轉(zhuǎn)換器,可用CH340 系列芯片實(shí)現(xiàn)[10]。
串口通信雙方選用一個帶有ARM 處理器的SoC 電路板和一個帶有51 系列單片機(jī)的MCU 電路板。SoC 電路板的供電電壓為5~16 V,ARM 處理器的具體型號為i.MX6ULL,有多達(dá)8 個UART,單片機(jī)的具體型號為STC15F2K60S2,工作電壓為5 V,有2 個UART。SoC 電路板上還有RS232接口和RS485 接口,兩個電路板上的RXD、TXD、GND 引腳均已引出。實(shí)驗(yàn)硬件示意圖如圖2所示。

圖2 實(shí)驗(yàn)硬件平臺示意圖
由于硬件實(shí)驗(yàn)平臺的限制,經(jīng)過分析,現(xiàn)列出合理的串口通信連接方案如下。
(1)有線連接
方案一:雙方使用RS232 通信協(xié)議來實(shí)現(xiàn)通信,這樣,就需要在MCU 端加上一個帶DB-9 母頭的RS232 模塊,然后再通過兩端為DB-9 公頭的RS232 接口電纜進(jìn)行連接。RS232 通信電路連接圖如圖3所示。

圖3 RS232 通信電路連接圖
方案二:雙方使用RS485 通信協(xié)議來實(shí)現(xiàn)通信,這樣,就需要在MCU 端加上一個RS485 模塊,然后再通過兩根杜邦線進(jìn)行連接。需要說明的是,接線端對應(yīng)連接,即A-A 連接,B-B 連接。此外,終端的120 Ω 電阻不可省。RS485 通信電路連接圖如圖4所示。

圖4 RS485 通信電路連接圖
(2)無線連接
方案三:雙方使用藍(lán)牙、Wi-Fi 等帶有無線功能的模塊來實(shí)現(xiàn)通信[11],這樣,就需要在SoC 端和MCU 端各加上一個無線模塊,然后設(shè)置配對來實(shí)現(xiàn)通信連接。需要說明的是,所使用的無線模塊需要支持UART 接口。藍(lán)牙通信電路連接圖如圖5所示。

圖5 藍(lán)牙通信電路連接圖
在實(shí)驗(yàn)硬件平臺上,兩個電路板端都預(yù)留了兩個LED燈、兩個按鍵以及一個USB 轉(zhuǎn)串口。
(1)軟件方案設(shè)計
逐個實(shí)施上述三個硬件方案,再通過編程建立軟件連接,最終實(shí)現(xiàn)雙方通信。
軟件方案設(shè)計功能:初始化SoC 端和MCU 端的串口通信,雙方建立有線或無線連接后,分別按下各自端的按鍵,可實(shí)現(xiàn)數(shù)據(jù)發(fā)送,對方端接收到數(shù)據(jù)后,通過USB 轉(zhuǎn)串口顯示在電腦上的串口調(diào)試軟件上,并根據(jù)不同數(shù)據(jù)做出響應(yīng)。比如MCU 端按下KEY1,發(fā)送字符串“Hello-I am MCU.”,再按下KEY2,發(fā)送字符“1”。SoC 端接收到字符串后,直接顯示在串口調(diào)試軟件上,接收到字符“1”后,點(diǎn)亮LED1燈。
(2)驗(yàn)證方案實(shí)施
為驗(yàn)證雙方通信過程是否正常,需要用到串口調(diào)試工具。本文采用QT 開發(fā)出一個串口調(diào)試軟件,該軟件具有串口選擇、參數(shù)設(shè)定、接收和發(fā)送信息等基本功能,能夠滿足驗(yàn)證方案的需要。
軟件方案實(shí)施后,通過USB 線將兩個電路板分別連接到電腦上的不同USB 口,打開串口調(diào)試軟件,并選擇雙方約定好的通信參數(shù),再分別按下各自板端的按鍵,通過查看對方端串口調(diào)試工具輸出的調(diào)試信息或板端LED 燈狀態(tài)來驗(yàn)證雙方通信是否成功。
以方案二RS485 通信為例,當(dāng)SoC 端和MCU 端上電后,首先通過各自USB 轉(zhuǎn)串口輸出初始化成功信息,即“xxx RS485 Init Success!”。然后,按下SoC 端上的KEY1向MCU 端發(fā)送信息“Hello-I am SoC.”,當(dāng)MCU 端接收到信息后通過USB 轉(zhuǎn)串口顯示到串口調(diào)試軟件的接收區(qū)中。MCU 端操作亦如此。RS485 通信調(diào)試信息圖如圖6所示。

圖6 RS485 通信調(diào)試信息圖
在實(shí)驗(yàn)過程中發(fā)現(xiàn),嵌入式設(shè)備間能否成功通信的關(guān)鍵在于通信雙方在參數(shù)約定一致的條件下,一端的RXD 與另一端的TXD 是否正確連接。此外,由于有些單片機(jī)只有一個UART,當(dāng)用于電腦端串口調(diào)試時,就無法再用于設(shè)備間通信,否則就會無法正常工作。因此,在實(shí)際應(yīng)用時只能選擇多串口的單片機(jī)。總之,基于UART 的嵌入式設(shè)備間連接方式的研究與驗(yàn)證有助于對UART的研究與應(yīng)用。