日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

S5PV210开发 -- UART 详解

發布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 S5PV210开发 -- UART 详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如需轉載請注明出處:https://blog.csdn.net/qq_29350001/article/details/78532740

上一篇文章系統的講了一下通信的分類,包括并行通信,串行通信。串行通信的分類,包括同步通信,異步通信。

這篇文章我們主要講一下 UART

?

串口編程,我們并不陌生。之前講過RS485通信,參看:UNIX再學習 -- RS485 串口編程

再者,參看:日常生活小技巧 -- UART 回環測試

一、基本概念

?

參看:UART -- 維基百科

UART 是 Universal Asynchronous Receiver/Transmitter,通用異步收發器(異步串行通信口)的英文縮寫,它包括了RS232、RS449、RS423、RS422和RS485等接口標準規范和總線標準規范,即UART是異步串行通信口的總稱。 而RS232、RS449、RS423、RS422和RS485等,是對應各種異步串行通信口的接口標準和總線標準,它規定了通信口的電氣特性、傳輸速率、連接特性和接口的機械特性等內容。實際上是屬于通信網絡中的物理層(Physical Layer)的概念,與通信協議沒有直接關系。而通信協議,是屬于通信網絡中的資料鏈接層(Data Link Layer)的概念。 COM是PC(個人計算機)上,異步串行通信口的簡寫。由于歷史原因,IBM的PC外部接口配置為RS232,成為實際上的PC界默認標準。所以,現在PC機的COM均為RS232。若配有多個異步串行通信口,則分別稱為COM1、COM2... 。

二、UART數據傳輸格式

在講之前先感慨兩句,UART這部分的總結,真真的網上看了好多的資料。但都講的很零碎,沒有個所以然。看的我很糾結,不知道從何講起。

還好我們之前有講過串口編程,并非對 UART一無所知。那就從 TTL 和 RS232 電平說起。

(1)TTL 和 RS232 電平

RS232 電平
邏輯1:-3V~-15V
邏輯0:+3V~+15V

TTL 電平
邏輯1:+2V~+5V
邏輯0:+0V~+0.8V

?

TTL 電平和 RS232 電平我會再開一篇詳細來講。這里就是要了解一下SP3232 芯片。

我們查看原理圖,串口電路部分:

你能區分 SP3232 芯片引腳哪邊是TTL電平,哪邊是 RS232 電平嗎?(傻紙問題,哈哈)

我們介紹UART基本概念的時候,也提到了現在PC機的COM均為RS232,但是單片機的電平是TTL電平。

所以要用一個電平轉化芯片 SP3232,然后使得單片機和PC通過串口進行通信。

上圖標的很清楚啦,PC_TXD0、PC_RXD0 在PC端,為RS232電平

(2)數據傳輸格式

?

空閑位:?從一個字符的停止位結束到下一個字符的起始位開始,表示線路處于空閑狀態,為邏輯 1。

起始位:必須是持續1bit時間的邏輯 0 電平,標志著傳輸一個字符的開始,接收方可用起始位使自己的接收時鐘與發送方的數據同步。

數據位:緊跟在起始位之后,是通信中的真正有效信息。數據位的位數可以由通信雙方共同約定,一般可以是5位、6位、7位或8位,標準的ASCII碼是0~127(7位),擴展的ASCII碼是0~255(8位)。傳輸數據時先傳送字符的低位,后傳送字符的高位。

? ? 這里有幾個知識點需要知道:

? ? ASCII 碼,參看:C語言再學習 -- ASCII碼表(轉)

? ? MSB 和 LSB,參看:C語言再學習-- 大端小端詳解(轉)

? ? 思考:

? ? 傳輸數據時先傳送字符的低位,后傳送字符的高位。

? ? 因為通常我們的PC是小端的,如果沒有另外說明,通常可以假定數據首先傳輸最低有效位(LSB)。

? ? 在標準ASCII碼中 127 轉化成二進制為 0111 1111,即最有效高位一直為 0。只需傳輸 7 位即可

? ? 在擴展ASCII碼中 255 轉化成二進制為 1111 1111,需要傳輸 8 位。

校驗位:奇偶校驗位僅占一位,用于進行奇校驗或偶校驗,奇偶檢驗位不是必須有的。如果是奇校驗,需要保證傳輸的數據總共有奇數個邏輯高位;如果是偶校驗,需要保證傳輸的數據總共有偶數個邏輯高位。

? ? 這里有幾個知識點需要知道:

? ? 校驗位可分為NONE(無校驗位)、ODD(奇校驗)、EVEN(偶校驗),一般多為無校驗位。

? ? 奇偶校驗,參看:奇偶校驗 -- 百度百科? ?

? ??奇偶校驗位是一個表示給定位數的二進制數中 1 的個數是奇數還是偶數的二進制數。奇偶校驗位是最簡單的錯誤檢 測碼。奇偶校驗位有兩種類型:偶校驗位與奇校驗位。如果一組給定數據位中 1 的個數是奇數,那么偶校驗位就置為 1,從而使得總的 1 的個數是偶數;如果給定一組數據位中 1 的個數是偶數,那么奇校驗位就置為 1,使得總的1 的個數保持奇數不變。

? ? 舉個栗子:假設傳輸的數據位為 01001100,如果是奇校驗,則奇校驗位為0(要確保總共有奇數個1),如果是 偶校驗,則偶校驗位為1(要確保總共有偶數個1)

? ? 如果是采用奇校驗,在傳送每一個字節的時候另外附加一位作為校驗位,校驗位在數據位后面,當實際數據中“1”的個數為偶數的時候,這個校驗位就是“1”,否則這個校驗位就是“0”,這樣就可以保證傳送數據滿足奇校驗的要求。在接收方收到數據時,將按照奇校驗的要求檢測數據中“1”的個數,如果是奇數,表示傳送正確,否則表示傳送錯誤。

?

? ??如果傳輸過程中包括校驗位在內的奇數個數據位發生改變,那么奇偶校驗位將出錯表示傳輸過程有錯誤發生。因此,奇偶校驗位是一種錯誤檢測碼,但是由于沒有辦法確定哪一位出錯,所以它不能進行錯誤校正。發生錯誤時必須扔掉全部的數據,然后從頭開始傳輸數據。在噪聲很多的媒介上成功傳輸數據可能要花費很長的時間,甚至根本無法實現。但是奇偶校驗位也有它的優點,它是使用一位數據能夠達到的最好的校驗碼,并且它僅僅需要一些異或門就能夠生成。奇偶校驗被廣泛應用。

?

停止位:可以是是1bit、1.5bit或2bit,可以由軟件設定。它一定是邏輯 1 電平,標志著傳輸一個字符的結束。

? ? 由于數據是在傳輸線上定時的,并且每一個設備有其自己的時鐘,很可能在通信中兩臺設備間出現了小小的不同步。因此停止位不僅僅是表示傳輸的結束,并且提供 計算機校正時鐘同步的機會。適用于停止位的位數越多,不同時鐘同步的容忍程度越大,但是數據傳輸率同時也越慢。

(3)舉例說明TTL電平和RS232電平數據傳輸格式的不同

上面我們提到了 TTL 電平和 RS232 電平的邏輯電平是不同的,那么接下來我們舉個栗子。

例如,對于16進制數據55aaH,當采用8位數據位、1位停止位傳輸時,無校驗位。(先傳第一個字節55,再傳第二個字節aa,每個字節都是從低位向高位逐位傳輸)。我們來看它在一下 TTL 電平和 RS232 電平的信號線上的波形。

《1》TTL電平的串行數據幀格式

對于正邏輯的 TTL 電平,起始位是邏輯 0 為低電平;停止位和空閑位是邏輯 1 為高電平。

《2》RS-232電平的串行數據幀格式

?

對于正邏輯的 RS232 電平,起始位是邏輯 0 為高電平;停止位和空閑位是邏輯 1 為低電平。

?

?

?

上面提到 UART 包括了RS232、RS449、RS423、RS422和RS485等接口標準規范和總線標準規范。

我們最常見的是 RS232、RS485、RS422 這三個。下面我們一一的來詳細講解一下。

三、RS232

(1)接口標準

RS-232是美國電子工業聯盟(EIA)制定的串行數據通信的接口標準,原始編號全稱是EIA-RS-232(簡稱232,RS232)。它被廣泛用于計算機串行接口外設連接。

RS-232-C接口(又稱EIARS-232-C)是目前最常用的一種串行通訊接口。(“RS-232-C”中的“-C”只不過表示RS-232的版本,所以與“RS-232”簡稱是一樣的)。

RS-232采取不平衡傳輸方式,即所謂單端通訊。由于其發送電平與接收電平的差僅為2V至3V左右,所以其共模抑制能力差,再加上雙絞線上的分布電容,其傳送距離最大為約15米,最高速率為20kb/s。RS-232是為點對點(即只用一對收、發設備)通訊而設計的,其驅動器負載為3~7kΩ。所以RS-232適合本地設備之間的通信。

(2)常見連接器

常見的有 DB9 和 DB25,并且連接器分公/母頭。

《1》DB9

首先它相關器件有很多。這里只是介紹最常見的。

DB9針串口魚叉式公頭母頭:

?

DB9針串口焊板式公座母座:

?

?

串口線延長母對母/公對母/公對公:

?

講到串口線,它有交叉線與直通線之分:

參看:串口線-交叉線與直通線之分

1:串口交叉線
串口線兩頭都一樣都相同。都是公對公或者母對母串口線,這種線必須是交叉線。一端的第二針與另一端的第三針是通路的,說明此線是交叉線。
以下是判斷方法:

2:串口直通線
如果用戶串口設備與串口服務器連接使用公對母串口線,那必須使用公對母直通線。
一端公頭的2對應,另一端母頭的2,一端母頭的3對應另一端公頭的3.

?

DB9針串口焊板式PCB元件封裝:

?

最后示例分析串口直通和交叉之分:

以聯想臺式機為例,通常PC上的串口為公頭的:

或者筆記本電腦,通常用的 USB轉串口線,也是公頭的:

?

1:串口交叉線

2:串口直通線

引腳定義:

公頭:

母頭:

Pin2 TXD

Pin3 RXD

Pin5 GND

《2》DB25

(3)RS232收發器

這類芯片也有不少,我們就講上面提到的 SP3232,查看相關手冊和原理圖。

《1》特性

滿足EIA/TIA-232-F標準,工作電壓為+3.0V到+5.5V
滿載最小數據速率:120Kbps
1uA的低功耗關斷模式,接收器(SP3222E)有效
可與RS-232共同使用,電源低至+2.7V?
增強型ESD規范: ?
±15kV人體放電模式?
±15kV IEC1000-4-2氣隙放電?
±8kV IEC1000-4-2接觸放電

《2》封裝

《3》引腳說明

《4》相關電路圖

四、RS485

(1)接口標準

電子工業協會(EIA)于1983 年制訂并發布RS-485 標準,并經通訊工業協會(TIA)修訂后命名為TIA/EIA-485-A,習慣地稱之為RS-485 標準。
它是從RS-422基礎上發展而來的,所以RS-485許多電氣規定與RS-422相仿。如都采用平衡傳輸方式、都需要在傳輸線上接終接電阻等。RS-485可以采用二線與四線方式,二線制可實現真正的多點雙向通信,而采用四線連接時,與RS-422一樣只能實現點對多的通信,即只能有一個主(Master)設備,其余為從設備,但它比RS-422有改進,無論四線還是二線連接方式總線上可多接到32個設備。
RS-485與RS-422的不同還在于其共模輸出電壓是不同的,RS-485是-7V至+12V之間,而RS-422在-7V至+7V之間,RS-485接收器最小輸入阻抗為12kΩ、RS-422是4kΩ;由于RS-485滿足所有RS-422的規范,所以RS-485的驅動器可以在RS-422網絡中應用。
RS-485與RS-422一樣,其最大傳輸距離約為1219米,最大傳輸速率為10Mb/s。平衡雙絞線的長度與傳輸速率成反比,在100kb/s速率以下,才可能使用規定最長的電纜長度。只有在很短的距離下才能獲得最高速率傳輸。一般100米長雙絞線最大傳輸速率僅為1Mb/s。[2]?

RS-485 標準是為彌補RS-232 通信距離短、速率低等缺點而產生的。RS-485 標準只規定了平衡發送器和接收器的電特性,而沒有規定接插件、傳輸電纜和應用層通信協議

RS-485 標準與RS-232 不一樣,數據信號采用差分傳輸方式(Differential Driver Mode),作用是可以抑制共模干擾。

(2)485轉232接口

上面提到了,標準沒有規定接插件,所以一般都是引出四根線:VCC,GND,TXD,RXD

常用的還有 485轉232轉換器

(3)RS485收發器

這里主要講一下?SP3485

《1》特性

RS-485和RS-422收發器?
工作電壓為+3.3V ?
可與+0.5V的邏輯電路共同工作?
驅動器/接收器使能 z?
低功耗關斷模式(SP3481)?
-7V~+12V的共模輸入電壓范圍?
允許在同一串行總線上連接32個收發器?
與工業標準75176管腳配置兼容?
驅動器輸出短路保護

《2》電路圖和引腳

引腳說明:

Pin1-RO-接收器輸出。
Pin2-RE-接收器輸出使能(低電平有效)。
Pin3-DE-驅動器輸出使能(高電平有效)。
Pin4-DI-驅動器輸入。
Pin5-GND-連接地。
Pin6-A-驅動器輸出/接收器輸入(同相)。
Pin7-B-驅動器輸出/接收器輸入(反相)。
Pin8-Vcc

?

注意:將AB間120歐姆去掉,如果采用阻抗匹配的電纜,300米以內幾乎可以不用加終端電阻。加終端電阻的缺點就是增大了線路的無用功耗,尤其是電池系統供電時,降低了電池的續航能力。我一開始沒有將它去掉,導致只能發送數據,無法接收數據。

?

五、RS422

我用的并不多,所以只是簡單簡紹一下:

標準全稱是“平衡電壓數字接口電路的電氣特性”,它定義了接口電路的特性。典型的RS-422是四線接口。實際上

還有一根信號地線,共5根線。其DB9連接器引腳定義。由于接收器采用高輸入阻抗和發送驅動器比RS232更強的驅動能力,故允許在相同傳輸線上連接多個接收節點,最多可接10個節點。即一個主設備(Master),其余為從設備(Slave),從設備之間不能通信,所以RS-422支持點對多的雙向通信。接收器輸入阻抗為4k,故發端最大負載能力是10×4k+100Ω(終接電阻)。RS-422四線接口由于采用單獨的發送和接收通道,因此不必控制數據方向,各裝置之間任何必須的信號交換均可以按軟件方式(XON/XOFF握手)或硬件方式(一對單獨的雙絞線)實現。
RS-422的最大傳輸距離為1219米,最大傳輸速率為10Mb/s。其平衡雙絞線的長度與傳輸速率成反比,在100kb/s速率以下,才可能達到最大傳輸距離。只有在很短的距離下才能獲得最高速率傳輸。一般100米長的雙絞線上所能獲得的最大傳輸速率僅為1Mb/s。

六、三者比較

參看:串行通信的基礎知識- RS-232C / RS-422 / RS-485 -

七、需要了解的小知識點

雙絞線,參看:雙絞線 -- 百度百科

?

差分布線,參看:Altium Designer -- 差分布線原則

如何差分布線,參看:Altium Designer -- 精心總結

八、總結

擴展閱讀:

Serial Communication

Universal Asynchronous Receiver/Transmitter (UART)

The USART of the AVR

Serial and UART Tutorial

?

這篇文章,寫了好久。查閱相關資料應該是最多的一次了。最后發現還是有很多東西沒有寫,也是無語。

最近諸事不順,搞的很焦慮。真的感覺人是很脆弱的,放寬心開心健康過好每一天,是多么珍貴。

如需轉載請注明出處:https://blog.csdn.net/qq_29350001/article/details/78532740

總結

以上是生活随笔為你收集整理的S5PV210开发 -- UART 详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。