||
串口作為Air780EPM模塊的核心通信接口,承擔(dān)著設(shè)備控制、數(shù)據(jù)傳輸及外設(shè)交互等關(guān)鍵功能,在物聯(lián)網(wǎng)終端、智能設(shè)備、工業(yè)自動(dòng)化等場(chǎng)景中不可或缺。
一、概述
串口作為 Air780EPM 模塊最最主要的通信接口,承擔(dān)著控制,數(shù)據(jù)傳輸,外設(shè)通信等重要功能。基本上絕大部分的 Cat.1 應(yīng)用場(chǎng)景都會(huì)用到。而 Air780EPM 模塊的串口特性和使用要求上與通常的 MCU 串口會(huì)有些不同,導(dǎo)致在第一次用 Air780EPM 模塊做設(shè)計(jì)時(shí)容易踩到一些坑。
特別說(shuō)明: Air780EPM 不支持AT指令操作,3 個(gè) UART ( UART1 UART2 UART3) 僅用于 LuatOS 二次開(kāi)發(fā)使用;
本文主要從硬件設(shè)計(jì)的角度,著重講解串口設(shè)計(jì)中的一些關(guān)鍵注意點(diǎn),軟件開(kāi)發(fā)方面不做深入探討。
二、串口相關(guān)管腳
Air780EPM 支持 4 個(gè)串口,分別是主串口 UART1(MAIN_UART), UART2(AUX_UART)和UART3, 調(diào)試串口 UART0(DBG_UART)。對(duì)應(yīng)的管腳如下:
擴(kuò)展串口 UART2 和 UART3 從硬件上的電氣特性來(lái)說(shuō)與主串口一樣(但是不能支持休眠喚醒功能)。
調(diào)試串口 UART0,用來(lái)輸出模塊的運(yùn)行日志。 調(diào)試串口固定波特率 961200 不可更改,不建議連接任何外設(shè),但建議設(shè)計(jì)時(shí)預(yù)留測(cè)試點(diǎn)。調(diào)試串口日志數(shù)據(jù)有專(zhuān)門(mén)的協(xié)議,如果用普通的串口工具抓取會(huì)顯示亂碼,只有用專(zhuān)用調(diào)試工具,如有需要請(qǐng)聯(lián)系官方技術(shù)人員。 對(duì)于 openCPU 二次開(kāi)發(fā)應(yīng)用來(lái)說(shuō),調(diào)試串口可以配置為一般串口使用,但是要注意,即使配置為一般串口在開(kāi)機(jī)時(shí)軟件跑起來(lái)前的這段時(shí)間內(nèi),仍然會(huì)輸出調(diào)試日志,這就有可能對(duì)外接的外設(shè)造成誤動(dòng)作。同理,將調(diào)試串口配置為 GPIO 使用時(shí)也會(huì)有這個(gè)問(wèn)題。因此萬(wàn)不得已情況下不要使用調(diào)試串口做其他功能。
四、硬件設(shè)計(jì)指導(dǎo)
主串口的型號(hào)命名很容易讓人聯(lián)想到 RS232 標(biāo)準(zhǔn)的 DB9 接口,其實(shí)不然,模塊的串口連接方式與標(biāo)準(zhǔn) RS232 連接方式有所不同,如下是標(biāo)準(zhǔn) RS232 串口連接方式,特點(diǎn)是交叉連接。
模塊串口遵循的是早期賀氏(HAYES)公司制定的 MODEM 串口標(biāo)準(zhǔn),在這個(gè)標(biāo)準(zhǔn)下,DTR,DSR,CTS,RTS 信號(hào)的功能有所不同。MODEM 串口標(biāo)準(zhǔn)標(biāo)準(zhǔn)下 DTR, DSR,CTS,RTS 采用的是直連方式,如下圖
在逐漸的演變過(guò)程中,DCD ,DSR,RI 逐漸演變?yōu)槠渌莫?dú)立功能,在物聯(lián)網(wǎng)串口應(yīng)用中僅保留 T/RX 加流控管腳的 5 線(xiàn)串口的形式,但是 CTS ,RTS 的命名規(guī)則保留了下來(lái),雖然 CTS/RTS 采用直連的方式,但是實(shí)際上模塊的 CTS 管腳起到的功能是標(biāo)準(zhǔn) RTS 功能;模塊 RTS 管腳起到的功能是標(biāo)準(zhǔn) CTS 功能。連接方式如下:
甚至流控管腳也不是必須,就變成了 3 線(xiàn)串口:
Air780EPM 的串口是 TTL 電平串口,TTL 電平串口會(huì)有輸入輸出判別門(mén)限,如下圖。
同時(shí),外接 MCU 或者外設(shè)的 TTL 電平串口同樣有判別門(mén)限,一般來(lái)說(shuō),TTL 電平的判別門(mén)限高低取決于 IO 供電電平 VDD 的高低。如果串口雙方的判別門(mén)限差別較大,一方的輸出高電平落在對(duì)方的高電平判別門(mén)限下,就容易出現(xiàn)誤判的現(xiàn)象,雖說(shuō) Air780EPM 可以通過(guò) 100 管腳來(lái)選擇串口電平,但也僅有 1.8V 和 3.3V 兩個(gè)檔位,無(wú)法覆蓋全部情況,在串口雙方電平不一致的情況,就要增加電平轉(zhuǎn)換電路來(lái)轉(zhuǎn)換通信電平。
例如,模塊串口電平 3.3V, MCU 串口電平 3.0V。按照上圖判別門(mén)限,模塊的輸入高判別門(mén)限為 0.7x3.3=2.32V,所以 MCU 串口高電平輸出為 3V,高于模塊的輸入高判別門(mén)限,能夠穩(wěn)定判斷。這種情況下即使 MCU 與模塊的電平不一致,直接連接也不會(huì)造成通信問(wèn)題。通常這種情況下,無(wú)需電平轉(zhuǎn)換,只需要在窗口 TX RX 型號(hào)線(xiàn)上串聯(lián)限流電阻即可,限流電阻用于減小串口電平不匹配造成的漏電,通常按經(jīng)驗(yàn)串聯(lián) 1K 電阻即可,注意串聯(lián)電阻不宜過(guò)大,會(huì)影響串口型號(hào)的上升下降時(shí)間,從而影響串口信號(hào)質(zhì)量。
注意:不要只看判別門(mén)限,還要考慮串口的耐壓,即使落在判別門(mén)限內(nèi),但是一方高電平高于對(duì)方的 IO 耐壓值的情況下就不能要串聯(lián)電阻的方式,還是老老實(shí)實(shí)加串口電平轉(zhuǎn)換。一般來(lái)說(shuō)雙方的電平差不宜超過(guò) 0.5V
在串口波特率不高的情況下(如 115200),可以通過(guò) NPN 晶體管的方式進(jìn)行電平轉(zhuǎn)換,參考設(shè)計(jì)如下圖,這種方式的優(yōu)點(diǎn):成本低; 劣勢(shì):低電平下會(huì)被三極管的飽和管壓降抬高(通常在 0.1v 左右,不影響通信);開(kāi)關(guān)速度不夠,超過(guò) 460800 波特率時(shí)不建議用這種方式。
設(shè)計(jì)注意:
對(duì)于三極管選型并沒(méi)有嚴(yán)格要求,通用的3904NPN三極管都能滿(mǎn)足要求
電平轉(zhuǎn)換芯片方案:
電平轉(zhuǎn)換芯片,對(duì)成本不敏感的話(huà),優(yōu)先考慮用電平轉(zhuǎn)換芯片,無(wú)論速度,可靠性都很完美。對(duì)于設(shè)計(jì)方面只要注意芯片選型,同時(shí)模塊端參考電平注意用 AGPIO3,其他的參考具體芯片參考設(shè)計(jì)即可,沒(méi)有太多注意事項(xiàng)。
考慮到電平轉(zhuǎn)換芯片價(jià)格與通道數(shù)量成正相關(guān),也可以采用 TX RX 用雙通道電平轉(zhuǎn)換芯片,其他流控信號(hào)用晶體管或者分壓方式來(lái)做電平轉(zhuǎn)換。兼顧性能和成本。
電平轉(zhuǎn)換芯片選型:
五、總結(jié)
雖然串口這個(gè)硬件總線(xiàn)原理簡(jiǎn)單,速率低速,設(shè)計(jì)也不復(fù)雜,但是對(duì)于 Cat.1 通信系統(tǒng)尤其是低功耗物聯(lián)網(wǎng)應(yīng)用,串口的設(shè)計(jì)就會(huì)牽涉到休眠和功耗,因此在設(shè)計(jì)中還是要有足夠的重視。