硬件開發(fā)入門--RS232串行通信
1. 串口介紹
串口是“串行接口”的簡(jiǎn)稱,即采用串行通信方式的接口。串行通信將數(shù)據(jù)字節(jié)分成一位一位的形式在一條數(shù)據(jù)線上逐個(gè)傳送,其特點(diǎn)是通信線路簡(jiǎn)單,但傳輸速度較慢。因此串口廣泛應(yīng)用于嵌入式、工業(yè)控制等領(lǐng)域中對(duì)數(shù)據(jù)傳輸速度要求不高的場(chǎng)合。串行通信分為兩種方式:同步串行通信和異步串行通信。同步串行通信需要通信雙方在同一時(shí)鐘的控制下,同步傳輸數(shù)據(jù);異步串行通信是指通信雙方使用各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和接收過程。UART是一種采用異步串行通信方式的通用異步收發(fā)傳輸器(universal asynchronous receiver-transmitter),它在發(fā)送數(shù)據(jù)時(shí)將并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)來傳輸,在接收數(shù)據(jù)時(shí)將接收到的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)。UART串口通信需要兩根信號(hào)線來實(shí)現(xiàn),一根用于串口發(fā)送,另外一根負(fù)責(zé)串口接收。UART在發(fā)送或接收過程中的一幀數(shù)據(jù)由4部分組成,起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位,如下圖所示。其中,起始位標(biāo)志著一幀數(shù)據(jù)的開始,停止位標(biāo)志著一幀數(shù)據(jù)的結(jié)束,數(shù)據(jù)位是一幀數(shù)據(jù)中的有效數(shù)據(jù)。校驗(yàn)位分為奇校驗(yàn)和偶校驗(yàn),用于檢驗(yàn)數(shù)據(jù)在傳輸過程中是否出錯(cuò)。奇校驗(yàn)時(shí),發(fā)送方應(yīng)使數(shù)據(jù)位中1的個(gè)數(shù)與校驗(yàn)位中1的個(gè)數(shù)之和為奇數(shù);接收方在接收數(shù)據(jù)時(shí),對(duì)1的個(gè)數(shù)進(jìn)行檢查,若不為奇數(shù),則說明數(shù)據(jù)在傳輸過程中出了差錯(cuò)。同樣,偶校驗(yàn)則檢查1的個(gè)數(shù)是否為偶數(shù)。
異步串行通信數(shù)據(jù)格式圖如上圖所示,UART通信過程中的數(shù)據(jù)格式及傳輸速率是可設(shè)置的,為了正確的通信,收發(fā)雙方應(yīng)約定并遵循同樣的設(shè)置。數(shù)據(jù)位可選擇為5、6、7、8位,其中8位數(shù)據(jù)位是最常用的,在實(shí)際應(yīng)用中一般都選擇8位數(shù)據(jù)位;校驗(yàn)位可選擇奇校驗(yàn)、偶校驗(yàn)或者無校驗(yàn)位;停止位可選擇1位(默認(rèn)),1.5或2位。串口通信的速率用波特率表示,它表示每秒傳輸二進(jìn)制數(shù)據(jù)的位數(shù),單位是bps(位/秒),常用的波特率有9600、19200、38400、57600以及115200等。在設(shè)置好數(shù)據(jù)格式及傳輸速率之后,UART負(fù)責(zé)完成數(shù)據(jù)的串并轉(zhuǎn)換,而信號(hào)的傳輸則由外部驅(qū)動(dòng)電路實(shí)現(xiàn)。電信號(hào)的傳輸過程有著不同的電平標(biāo)準(zhǔn)和接口規(guī)范,針對(duì)異步串行通信的接口標(biāo)準(zhǔn)有RS232、RS422、RS485等,它們定義了接口不同的電氣特性,如 RS-232是單端輸入輸出,而RS-422/485 為差分輸入輸出等。2. 常見的串行通信接口
針對(duì)異步串行通信的接口標(biāo)準(zhǔn)有RS232、RS422、RS485,其對(duì)比區(qū)別如下:
RS-232,RS-422和RS-485也都是常用的串行通信接口標(biāo)準(zhǔn),它們定義了接口不同的電氣特性,如 RS-232 是單端輸入輸出,而 RS-422/485為差分輸入輸出等。2. 串行通信傳輸方式串口通信過程中有單端傳輸與差分傳輸?shù)牟顒e。單端傳輸是指在發(fā)送或接收過程中,用信號(hào)線對(duì)地線的電壓值來表示邏輯“0”和“1”。而差分傳輸使用兩根信號(hào)線來傳輸一路信號(hào),這兩根信號(hào)線上傳輸?shù)男盘?hào)幅值相等,相位相差 180 度(極性相反),用它們的差值來表示邏輯“0”和“1”,如下圖所示。

5. RS232基礎(chǔ)介紹
RS232 接口標(biāo)準(zhǔn)出現(xiàn)較早,可實(shí)現(xiàn)全雙工工作方式,即數(shù)據(jù)發(fā)送和接收可以同時(shí)進(jìn)行。在傳輸距離較短時(shí)(不超過15m),RS232是串行通信最常用的接口標(biāo)準(zhǔn)。RS-232標(biāo)準(zhǔn)的串口最常見的接口類型為DB9(如下圖1所示),工業(yè)控制領(lǐng)域中用到的工控機(jī)一般都配備多個(gè)串口,很多老式臺(tái)式機(jī)也都配有串口。但是筆記本電腦以及較新一點(diǎn)的臺(tái)式機(jī)都沒有串口,它們一般通過USB轉(zhuǎn)串口線來實(shí)現(xiàn)與外部設(shè)備的串口通信(如下圖2所示)。
DB9 接口定義以及各引腳功能說明如圖,我們一般只用到其中的 2(RXD)、3(TXD)、5(GND)引腳,其他引腳在普通串口模式下一般不使用。
3線連接中,使用TXD和RXD兩條數(shù)據(jù)線,無法實(shí)現(xiàn)硬件流控功能。
6. 典型硬件電路設(shè)計(jì)
SP3232的作用:ZYNQ PL端串口輸入輸出引腳為TTL電平,用3.3V代表邏輯“1”,0V 代表邏輯“0”;而計(jì)算機(jī)串口采用RS-232電平,它是負(fù)邏輯電平,即-15V~-5V 代表邏輯“1”,+5V~+15V 代表邏輯“0”。因此當(dāng)計(jì)算機(jī)與ZYNQ通信時(shí),需要加電平轉(zhuǎn)換芯片SP3232,實(shí)現(xiàn)RS232電平與TTL電平的轉(zhuǎn)換。P1的座子的作用:SP3232芯片端口的U2_RX和U2_TX并沒有直接和ZYNQ的引腳相連接,而是連接到了P1排針上。RS232串口和RS485串口共用P1排針的UART2_TX和UART2_RX,而UART2_TX和UART2_RX是直接和ZYNQ的引腳相連接的。在使用時(shí),使用跳線帽選擇與ZYNQ 相連接的串口類型,這樣的設(shè)計(jì)方式實(shí)現(xiàn)了有限IO的復(fù)用。因此,在做RS232的通信實(shí)驗(yàn)時(shí),需要使用杜邦線或者跳線帽將U2_RX和UART2_TX連接在一起,U2_TX和UART2_RX連接在一起。原理說明:P1端子的3腳是連接FPGA的發(fā)送端,4腳是連接FPGA的接收端。COM2的2腳是接收數(shù)據(jù)端,3腳是發(fā)送數(shù)據(jù)端。發(fā)送數(shù)據(jù)的過程:如果我們想實(shí)現(xiàn)FPGA與外部的串口設(shè)備進(jìn)行通信。那我們就需要將串口的發(fā)送端與外部設(shè)備串口的接收端進(jìn)行連接。所以用跳線帽把P1的3腳和P1的1腳連接。另外,我們還需要把串口的接收端與外部的發(fā)送端連接,即把P1的2腳和P1的4腳連接。U1的11腳在芯片的內(nèi)部與14管腳連接,在這個(gè)過程中,完成了TTL電平到RS232電平的轉(zhuǎn)換。通過第14管腳連接到DB9的第二個(gè)管腳。DB9的2腳是接收數(shù)據(jù)端。DB9通過串口線與外部的串口設(shè)備進(jìn)行連接。接收數(shù)據(jù)的過程:外部的串口設(shè)備會(huì)發(fā)送數(shù)據(jù)通過串口線連接到DB9的第3管腳,數(shù)據(jù)通過SP3232管腳的13管腳,再連接到12管腳,在這個(gè)過程中,完成電平轉(zhuǎn)換的過程。最終數(shù)據(jù)會(huì)通過P2的2腳和4腳連接,送到FPGA的接收端。7. MAX232與MAX3232常用232電平轉(zhuǎn)換芯片的區(qū)別
- MAX232是5V電壓供電的,而max3232是5v或3.3V電壓供電的。
- MAX232功耗較大,供電電壓5V時(shí),耗電5mA;而MAX3232功耗較小,供電電壓5V或3.3V時(shí),耗電 0.3mA。
- MAX232外接4個(gè)1uF電容;而MAX3232外接4個(gè)0.1uF電容。
- MAX232一般民用產(chǎn)品應(yīng)用;而MAX3232一般軍用(如航天等對(duì)功耗要求苛刻的地方)。
- 價(jià)格上略有差別。





