一、介紹
??PC機(jī)與樹(shù)莓派的常用通信方式SSH(Secure Shell)遠(yuǎn)程登錄、VNC Viewer虛擬網(wǎng)絡(luò)控制臺(tái)都需要網(wǎng)絡(luò)連接,但還有一種不需要網(wǎng)絡(luò)的通信方式:Serial port串口通信。
??就好比配置路由器一樣,除了網(wǎng)頁(yè)配置、SSH遠(yuǎn)程登錄外,還可以Console口本地配置,特別是初始配置時(shí)。樹(shù)莓派也會(huì)遇到?jīng)]有顯示器又沒(méi)有網(wǎng)絡(luò)、不能遠(yuǎn)程登錄的情況,這時(shí)就可以使用串口通信。
??我們的筆記本通常沒(méi)有串口,這時(shí)就需要一個(gè)USB轉(zhuǎn)TTL的模塊了,它的作用就是把電平轉(zhuǎn)換到雙方都能識(shí)別進(jìn)行通信,USB口插筆記本,模塊的相應(yīng)針腳連接樹(shù)莓派的UART串口TX、RX。
二、組件
★Raspberry Pi 3主板*1
★樹(shù)莓派電源*1
★USB TO TTL模塊*1
★面包板*1(可選)
★40P軟排線*1
★跳線若干
三、實(shí)驗(yàn)原理



(一)串口通信介紹
串口
串口,即串行接口,與之相對(duì)應(yīng)的另一種接口叫并口,并行接口。兩者的區(qū)別是,傳輸一個(gè)字節(jié)(8個(gè)位)的數(shù)據(jù)時(shí),串口是將8個(gè)位排好隊(duì),逐個(gè)地在1條連接線上傳輸,而并口則將8個(gè)位一字排開(kāi),分別在8條連接線上同時(shí)傳輸。
在相同的數(shù)據(jù)傳輸速率下,并口的確比串口更快,但由于并口的各個(gè)連接線之間容易互相干擾,高速情況下難以同步各連接線的數(shù)據(jù),而且硬件成本也相對(duì)串口更高(線多),因而串口取代并口成為了現(xiàn)在的主流接口,較具代表性的要數(shù)Universal Serial Bus,通用串行總線,也就是USB。其它在嵌入式領(lǐng)域常見(jiàn)的串行接口還包括:I2C,SPI,RJ-45,UART,USART等。
COM口
電腦上的異步串行通信接口,有時(shí)也稱(chēng)之為串口(其實(shí)這個(gè)叫法并不嚴(yán)謹(jǐn))。電腦COM口使用DB9連接器,遵循RS-232標(biāo)準(zhǔn),RS-232規(guī)定了通信口的電氣特性(比如多少伏為邏輯“1”)和接口機(jī)械特性(形狀,針腳定義)等內(nèi)容。COM口多見(jiàn)于舊式電腦,用于連接鼠標(biāo),調(diào)制調(diào)解器等設(shè)備,現(xiàn)在已被USB取代。

USB接口
通用串行總線(Universal Serial Bus,縮寫(xiě):USB)是一種串口總線標(biāo)準(zhǔn),也是一種輸入輸出接口的技術(shù)規(guī)范,規(guī)范電腦與外部設(shè)備的連接和通訊,具有熱插拔功能。USB是在1994年底由英特爾等多家公司聯(lián)合在1996年推出后,已成功替代串口和并口,已成為當(dāng)今電腦與大量智能設(shè)備的必配接口。
USB只有4根線,兩根電源兩根信號(hào),故信號(hào)是串行傳輸?shù)模瑄sb接口也稱(chēng)為串行口,usb2.0的速度可以達(dá)到480Mbps。接口的輸出電壓和電流是: +5V, 500mA 。實(shí)際上有誤差,最大不能超過(guò)+/-0.2V ,也就是4.8--5.2V 。
usb接口的4根線一般是下面這樣分配的,需要注意的是千萬(wàn)不要把正負(fù)極弄反了,否則會(huì)燒掉usb設(shè)備或者電腦的南橋芯片:黑線:gnd ;紅線:vcc ;綠線:data+ ;白線:data-。

UART與USART
UART,全稱(chēng)Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器。
USART,全稱(chēng)Universal Synchronous/Asynchronous Receiver/Transmitter,通用同步異步收發(fā)傳輸器。
兩者都是一個(gè)數(shù)據(jù)收發(fā)器,屬于硬件電路范疇。既然是“器”,顯然,它就是個(gè)設(shè)備而已,要完成一個(gè)特定的功能的硬件,它本身并不是協(xié)議。
它的最基本功能,是串行數(shù)據(jù)和并行數(shù)據(jù)之間的轉(zhuǎn)換。我們知道,計(jì)算機(jī)中的數(shù)據(jù)以Byte為基本單位,對(duì)一個(gè)Byte的存取是并行的,即,同時(shí)取得/寫(xiě)入8個(gè)bit。而串行通信,需要把這個(gè)Byte“打碎”,按照時(shí)間順序來(lái)收發(fā)以實(shí)現(xiàn)串行。例如:

這就是UART做的最基本工作,進(jìn)一步的,它還要控制“發(fā)車(chē)的班次”,比如確認(rèn)一個(gè)Byte的這8個(gè)bit是什么時(shí)候開(kāi)始的,又是什么時(shí)候結(jié)束的,兩個(gè)班次之間至少要隔多長(zhǎng)時(shí)間的緩沖,等等。這一部分,也具有協(xié)議的特征,但是相對(duì)于道路上的協(xié)議,更具有一般性,或曰,是與車(chē)在什么道路上開(kāi),相對(duì)獨(dú)立的。
UART使用異步通信,而USART既可異步通信,也可同步通信。當(dāng)USART使用異步通信時(shí),就變成了UART。單片機(jī)的串口指的就是UART或USART。
同步通信和異步通信的區(qū)別是:時(shí)鐘線的有無(wú)。同步通信有時(shí)鐘線,收發(fā)雙方通過(guò)統(tǒng)一的時(shí)鐘來(lái)確定何時(shí)進(jìn)行數(shù)據(jù)的傳輸,如I2C和SPI。異步通信沒(méi)有時(shí)鐘線,只能在數(shù)據(jù)的頭和尾加入標(biāo)志位來(lái)區(qū)分不同的數(shù)據(jù)幀,接收數(shù)據(jù)之前也要預(yù)先知道波特率的大小,傳輸效率比同步通信要低。

串口、RS-232與TTL
前面講過(guò),RS-232是一個(gè)串行通信接口標(biāo)準(zhǔn),它規(guī)定了邏輯“1”為-3 ~ -15V,邏輯“0”為+3 ~ +15V,符合該標(biāo)準(zhǔn)的串口也叫RS-232串口,比如電腦的COM口。那么,還有不符合RS-232標(biāo)準(zhǔn)的串口?答案是肯定的,那就是單片機(jī)(如stm32)的UART/USART,這個(gè)也叫串口,但它不遵循RS-232標(biāo)準(zhǔn),使用的是TTL電平(Transistor-Transistor Logic),該電平的邏輯“1”為+5V,邏輯“0”為0V,稱(chēng)為T(mén)TL串口。
需要注意的是,串口、UART/USART通常指的是硬件接口,而RS-232指的是屬于物理層范疇的串行通信接口標(biāo)準(zhǔn),簡(jiǎn)而言之,RS-232就是個(gè)標(biāo)準(zhǔn)。
串口通訊,其實(shí),UART就相當(dāng)于車(chē)站,而RS232/RS485則對(duì)應(yīng)于公路的規(guī)則??梢哉f(shuō),線路上存在的僅僅是電流,RS232/RS485規(guī)定了這些電流在什么樣的線路上流動(dòng)和流動(dòng)的樣式;在UART那里,電流才被解釋和組裝成數(shù)據(jù),并變成CPU可直接讀寫(xiě)的形式。
單片機(jī)與電腦的連接
既然單片機(jī)有串口(UART/USART),電腦也有串口(COM口),那么兩者就可以通過(guò)串口進(jìn)行通信。
如果電腦有實(shí)體COM口,由于COM口使用的RS-232電平跟單片機(jī)的UART/USART使用的TTL電平不一樣,這時(shí)就需要使用MAX232之類(lèi)的電平轉(zhuǎn)換芯片,將TTL電平轉(zhuǎn)換成RS-232電平,連接示意如下:
電腦COM口 <---> MAX232 <---> 單片機(jī)UART/USART
如果電腦沒(méi)有COM口,就要通過(guò)CH340之類(lèi)的USB轉(zhuǎn)TTL串口芯片,來(lái)實(shí)現(xiàn)用USB模擬COM口,這樣電腦的USB口就變成了一個(gè)TTL串口,可以跟單片機(jī)的UART/USART通信,連接示意如下:
電腦USB口 <---> CH340 <---> 單片機(jī)UART/USART
本次實(shí)驗(yàn)中的USB TO TTL模塊就是使用的CH340G芯片。
(二)模塊介紹
CH340G芯片,比國(guó)產(chǎn)PL2303穩(wěn)定,該系列芯片是STC官方推薦的USB轉(zhuǎn)TTL芯片,不會(huì)出現(xiàn)由于不同的驅(qū)動(dòng)或不同的電腦等導(dǎo)致不兼容現(xiàn)象。
可選擇3V3或5V供電,3V3和5V由短路冒選擇:6PIN排針上的短路冒――電壓選擇,(正面看上去,從上往下數(shù))1、2短路為5V TTL輸出,2、3短路為3V3 TTL輸出;

3.3V和5V的選擇視實(shí)際應(yīng)用環(huán)境使用,系統(tǒng)為3.3V時(shí)選擇3.3V,系統(tǒng)為5V時(shí)選擇5V,本實(shí)驗(yàn)中樹(shù)莓派只能使用3.3V,否則可能燒毀樹(shù)莓派。若驅(qū)動(dòng)和接線都對(duì),模塊不能正常通訊則可對(duì)調(diào)RXD和TXD兩條線試試。

四、實(shí)驗(yàn)步驟
??第1步: 連接電路。
| 樹(shù)莓派(name) | T型轉(zhuǎn)接板(BCM) | USB TO TTL模塊 |
|---|---|---|
| TXD | TXO | RXD |
| RXD | RXI | TXD |
| GND | GND | GND |
下圖中的USB要插到筆記本電腦上哈,為方便拍照就沒(méi)插上。連線很簡(jiǎn)單,電路圖就沒(méi)畫(huà)了。

??第2步: 設(shè)置樹(shù)莓派,在Raspberry Pi Configuration中將Serial Port和Serial Console都要Enable,然后必須重啟樹(shù)莓派生效。

??第3步: 將USB插上筆記本后,筆記本上要安裝串口驅(qū)動(dòng)程序(CH340G驅(qū)動(dòng)),安裝好后在設(shè)備管理器中可以看到串口,名稱(chēng)為“COM3”。

??第4步: 在筆記本上啟動(dòng)SecureCRT軟件,或者putty軟件連接樹(shù)莓派。我這里使用SecureCRT,設(shè)置好串口連接參數(shù),點(diǎn)擊連接。

??第5步: 登錄樹(shù)莓派賬號(hào),如同SSH遠(yuǎn)程登錄后一樣,可以管理樹(shù)莓派了。

