DSP教學(xué)實驗箱_創(chuàng)龍教儀_實驗操作教程:2-11 RS485 串口通信實驗
實驗?zāi)康?/p>
本教程是基于創(chuàng)龍教儀DSP教學(xué)實驗箱:TL6748-PlusTEB完成錄制的。
本節(jié)視頻的目的是了解 UART 的功能和結(jié)構(gòu),學(xué)習(xí)RS485 串口通信協(xié)議,并實現(xiàn)RS485 串口收發(fā)功能。
實驗原理
RS485
RS485是通信物理層的標(biāo)準(zhǔn)接口,一種信號傳輸方式,OSI(開放系統(tǒng)互連)模型的第一級。 創(chuàng)建 RS485 是為了擴(kuò)展 RS232 接口的物理功能。
RS485是使用兩根或三根電線的電纜完成的:一根數(shù)據(jù)線、一根帶反轉(zhuǎn)數(shù)據(jù)的電線,通常還有一根零線(接地,0 V)。主要思想是通過兩根電線傳輸一個信號。 當(dāng)一根電線傳輸原始信號時,另一根電線傳輸其反向副本。 ?用作傳輸線的雙絞線可以是屏蔽或非屏蔽的。

RS485接口的主要優(yōu)點
(1)通過一對雙絞線進(jìn)行雙向數(shù)據(jù)交換;
(2)支持連接到同一條線路的多個收發(fā)器,即創(chuàng)建網(wǎng)絡(luò)的能力;
(3)通訊線長;
(4)高傳輸速度。
RS485通信的主要特點
(1)雙向半雙工數(shù)據(jù)傳輸
串行數(shù)據(jù)流可以在一個方向傳輸,數(shù)據(jù)傳輸?shù)搅硪粋?cè)需要使用收發(fā)器。
(2)對稱通信通道
接收或傳輸數(shù)據(jù)需要兩條等效的信號線。 電線用于在兩個方向(交替)交換數(shù)據(jù)。 在雙絞線電纜的幫助下,對稱通道顯著提高了信號的穩(wěn)定性并抑制了有用信號產(chǎn)生的電磁輻射。
(3)多點通信
RS485通訊線可以連接多個接收器和收發(fā)器。 同時,一個發(fā)送器和多個接收器一次可以連接到一根通信線路上。 所有其他需要連接的發(fā)送器應(yīng)等待通信線路空閑以進(jìn)行數(shù)據(jù)傳輸。
RS485接口
控制管腳分別為: UART1_RXD 和 UART1_TXD。 CON16 是由 UART1 通過 ISO3082DW 串口轉(zhuǎn)換芯片得到的 RS485 串口。

UART
全稱Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器。 UART是一種通用串行數(shù)據(jù)總線,用于異步通信,異步通信以一個字符為傳輸單位,通信中兩個字符間的時間間隔多少是不固定的,但在同一個字符中的兩個相鄰位間的時間間隔是固定的。該總線雙向通信,可以實現(xiàn)全雙工傳輸和接收。串行通信是指利用一條傳輸線將資料一位位地順序傳送,特點是通信線路簡單,利用簡單的線纜就可實現(xiàn)通信,降低成本,適用于遠(yuǎn)距離通信,但傳輸速度慢的應(yīng)用場合。在嵌入式設(shè)計中,UART用于主機(jī)與輔助設(shè)備通信,如PC機(jī)通信包括與監(jiān)控調(diào)試器和其它器件。

UART特點
(1)通用異步
(2)串行低速總線
(3)全雙工
(4)需要約定通信速率
(5)只能點對點通信
UART功能框圖
接收器的FIFO,可以緩沖一部分?jǐn)?shù)據(jù),能提高接收速率的效率
中斷控制邏輯單元,用于產(chǎn)生中斷信號讓CPU響應(yīng)
串轉(zhuǎn)并的數(shù)據(jù)接收口
并轉(zhuǎn)串的發(fā)送口
UART通信的整體流程是數(shù)據(jù)通過UARTn_RXD接收數(shù)據(jù)通過移位寄存器將串行通信轉(zhuǎn)并行通信后經(jīng)過一系列的協(xié)處理后最后通過發(fā)送寄存器將并行通信轉(zhuǎn)為串行通信由UARTn_TXD發(fā)送出去

UART通信模式
(1)單工:數(shù)據(jù)傳輸僅能沿一個方向,不能實現(xiàn)反向傳輸。
(2)半雙工:數(shù)據(jù)傳輸可以沿兩個方向,但需要分時進(jìn)行(RS485)
(3)全雙工:數(shù)據(jù)可以同時進(jìn)行雙向傳輸。

編輯切換為居中
UART通信協(xié)議
起始位 : 發(fā)出一個邏輯 0 信號,表示傳輸字符的開始。
數(shù)據(jù)位 : 數(shù)據(jù)位的個數(shù)可以是 5、6、7、8 等,構(gòu)成一個字符。通常采用ASCII碼(7位),從最低位開始傳送。
校驗位 : 數(shù)據(jù)位加上這一位后,使得 1 的位數(shù)應(yīng)為偶數(shù)(偶校驗)或奇數(shù)(奇校驗),以此來校驗傳輸?shù)恼_性。
停止位 : 數(shù)據(jù)的結(jié)束標(biāo)志。可以是 1 位、1.5 位、2 位的高電平。
空閑位 : 處于邏輯 1 狀態(tài),表示當(dāng)前線路上沒有數(shù)據(jù)傳送。

波特率
指的是串口通信的速率,也就是串口通信時每秒鐘可以傳輸多少個二進(jìn)制。譬如每秒鐘可以傳輸9600個二進(jìn)制位,波特率就是9600。
串口通信的波特率不能隨意設(shè)定,而應(yīng)該在一些值中選擇,一般常見的波特率是9600和115200(低端單片機(jī)如51常用9600,高端單片機(jī)和嵌入式SoC一般用115200)。
(1)通信雙方必須事先設(shè)定相同的波特率這樣才能成功通信,如果發(fā)送方和接受方按照不同的波特率通信則根本收不到,因此比特率最好是大家熟知的而不是隨意指定的
(2)常用的波特率經(jīng)過長久發(fā)展,就形成了共識,常用9600 和115200。
數(shù)據(jù)配置源碼
配置GPIO輸出值的函數(shù)源碼和函數(shù)使用說明可以查看gpio.c。其中,第一個參數(shù)是GPIO的基地址,第二個參數(shù)是GPIO的編號,第三個參數(shù)設(shè)置GPIO的電平。

數(shù)據(jù)發(fā)送源碼
配置UART數(shù)據(jù)發(fā)送的函數(shù)源碼和函數(shù)使用說明可以查看uart.c。其中,第一個參數(shù)是UART正在使用的內(nèi)存地址,第二個參數(shù)是要傳輸?shù)淖止?jié)。

數(shù)據(jù)接收源碼
配置UART數(shù)據(jù)接收的函數(shù)源碼和函數(shù)使用說明可以查看uart.c。輸入的參數(shù)是UART正在使用的內(nèi)存地址。

操作現(xiàn)象
實驗設(shè)備
軟件
本實驗所需使用的軟件是CCS5.5和串口調(diào)試工具Xshell。


本實驗使用的硬件接口為RS485接口,所需硬件為實驗板、仿真器、RS485轉(zhuǎn)串口模塊、USB轉(zhuǎn)RS232串口線和電源。

硬件連接
(1)使用 RS485 轉(zhuǎn)串口模塊和 USB 轉(zhuǎn) RS232 串口線連接實驗板的 RS485 串口和電腦的 USB
口。
(2)連接仿真器和電腦的USB接口,
(3)將撥碼開關(guān)撥到DEBUG模式01111,連接實驗箱電源,撥動電源開關(guān)上電。

軟件操作
(1)先在設(shè)備管理器查看串口的端口號;
(2)再設(shè)置串口調(diào)試工具,波特率設(shè)置為115200。

導(dǎo)入工程,選擇Demo文件夾下的對應(yīng)工程
編譯工程
將CCS連接實驗箱并加載程序
點擊運行程序,串口終端會打印相關(guān)信息
通過電腦鍵盤輸入任意字符, 可在串口終端回顯。
