UART控制器
? ? 一般情況下處理器中都會(huì)集成UART控制器,我們使用UART進(jìn)行通信時(shí)只需要對(duì)其內(nèi)部的相關(guān)寄存器進(jìn)行設(shè)置即可
Exynos4412下的UART控制器(Exynos4412的主頻是1000兆)
設(shè)置引腳功能的本質(zhì)是讓引腳在芯片內(nèi)部連接到某一個(gè)對(duì)應(yīng)的控制器上
這里可以設(shè)置為GPIO、UART和PWM三種功能
通信基礎(chǔ) -?并行和串行
并行通信:
?? ?例如:char?類型的數(shù)據(jù) 1個(gè)字節(jié)8位 BIT[0] - BIT[7]可以一次性傳送過去
串行通信:
?? ?過獨(dú)木橋
單工和雙工
? ?
單工通信:
?? ?? ? 發(fā)送器? -> ?接收器
?? ?
波特率(每秒鐘傳送的二進(jìn)制位的個(gè)數(shù))
? ? 波特率用于描述UART通信是的通信速度,其單位為(bps bit per second)即每秒鐘傳送的bit的數(shù)量
一、URAT(Universal Asynchronous Receiver Transmitter)
? ? 通用異步收發(fā)器,是一種通用的串行、異步通信總線,該總線有兩條數(shù)據(jù)線,可以實(shí)現(xiàn)全雙工的發(fā)送和接收,在嵌入式系統(tǒng)中常用于主機(jī)與輔助設(shè)備之間的通信
異步:收發(fā)雙方時(shí)鐘不同步
如果連續(xù)發(fā)了兩個(gè)0或者兩個(gè)1或者多個(gè)1或0,如何去判斷1和0的個(gè)數(shù)?
? ? 方式一:通過時(shí)間去判定,波特率,每秒鐘發(fā)送的二進(jìn)制位的個(gè)數(shù),那這樣子可能會(huì)因?yàn)閮刹繖C(jī)器的時(shí)間有不同步而產(chǎn)生錯(cuò)位的情況
如何避免?
? ? 采用串行通信方式,每次只允許一個(gè)位通過,這樣子就避免了錯(cuò)位的問題
串口通信可以避免累計(jì)誤差的出現(xiàn)
UART存在的問題
1)電氣接口不統(tǒng)一
字節(jié)傳送與應(yīng)答
? ? IIC總線通信時(shí)每個(gè)字節(jié)為8位長度,數(shù)據(jù)傳送時(shí),先傳送最高位,后傳送低位,發(fā)送器發(fā)送完一個(gè)字節(jié)數(shù)據(jù)后接收器必須發(fā)送1位應(yīng)答位來回應(yīng)發(fā)送器即一幀共有9位
同步信號(hào)
? ? IIC總線在進(jìn)行數(shù)據(jù)傳送時(shí),時(shí)鐘線SCL為低電平期間發(fā)送器向數(shù)據(jù)線上發(fā)送一位數(shù)據(jù),在此期間數(shù)據(jù)線上的信號(hào)允許發(fā)生變化,時(shí)鐘線SCL為高電平期間接收器從數(shù)據(jù)線上讀取一位數(shù)據(jù),在此期間數(shù)據(jù)線上的信號(hào)不允許發(fā)生變化,必須保持穩(wěn)定。
典型IIC時(shí)序
1)主機(jī)向從機(jī)發(fā)送數(shù)據(jù)
2)從機(jī)向主機(jī)發(fā)送數(shù)據(jù)
注:陰影部分表示數(shù)據(jù)由主機(jī)向從機(jī)傳送,無陰影部分表示從機(jī)向主機(jī)傳送;A表示應(yīng)答,A非表示非應(yīng)答,S表示起始信號(hào),P表示終止信號(hào)
3)主機(jī)先向從機(jī)發(fā)送數(shù)據(jù),然后從機(jī)再向主機(jī)發(fā)送數(shù)據(jù)
停止有兩種方式
? ? 1、主機(jī)不發(fā)
? ? 2、從機(jī)不接
五、SPI總線
? ? SPI總線沒有起始信號(hào)和終止信號(hào)
?? ?SPI(Serial Per ipheral Interface)是串行外設(shè)接口的縮寫,SPI是一種高速的、全雙工、同步的串行通信總線;SPI采用主從方式工作,一般有一個(gè)主設(shè)備和一個(gè)或多個(gè)從設(shè)備;SPI需要至少4根線,分別是MISO(主設(shè)備Master輸入從設(shè)備Out輸出)、MOSI(主設(shè)備輸出從設(shè)備輸入)、SCLK(時(shí)鐘)、CS(片選)SPI使用引腳較少且布線方便,所以越來越多的芯片集成了這種通信協(xié)議;
什么時(shí)候會(huì)用到4根以上的線?
?? ?多個(gè)從機(jī)的時(shí)候
尋址方式
?? ?當(dāng)主設(shè)備要和某個(gè)從設(shè)備進(jìn)行通信時(shí),主設(shè)備需要先向?qū)?yīng)從設(shè)備的片選線上發(fā)送使能信號(hào)(高電平或者低電平,根據(jù)從機(jī)而定)表示選中該從設(shè)備
通信過程
?? ?SPI總線在進(jìn)行數(shù)據(jù)傳送時(shí),先傳送高位,后傳送低位;數(shù)據(jù)線為高電平表示邏輯‘1’,低電平表示邏輯‘0’;一個(gè)字節(jié)傳送完成后無需應(yīng)答即可開始下一個(gè)字節(jié)的傳送;SPI總線采用同步方式工作,
時(shí)鐘線在上升沿或下降沿時(shí)發(fā)送器向數(shù)據(jù)線上發(fā)送數(shù)據(jù),在緊接著的下降沿或上升沿時(shí)接收器從數(shù)據(jù)線上讀取數(shù)據(jù),完成一位數(shù)據(jù)傳送,八個(gè)時(shí)鐘周期即可完成一個(gè)字節(jié)數(shù)據(jù)的傳送;
無應(yīng)答過程可能會(huì)存在主機(jī)一直在發(fā),但是從機(jī)沒有接收到的情況
極性和相位
SPI總線有
四種不同的工作模式(00,01,10,11),取決于極性(CPOL)和相位(CPHL)這兩個(gè)因素
CPOL表示SCLK空閑時(shí)的狀態(tài)
?? ??? ?CPOL=O,空閑時(shí)SCLK為低電平
?? ??? ?CPOL=1,空閑時(shí)SCLK為高電平
CPHA表示采樣時(shí)刻
?? ??? ?CPHA=0,每個(gè)周期的第一個(gè)時(shí)鐘沿采樣
?? ??? ?CPHA=1,每個(gè)周期的第二個(gè)時(shí)鐘沿采樣
IIC和SPI的異同
相同點(diǎn)
?? ?1.均采用串行步的方式
?? ?2.均采用TTL電平,傳輸距離和應(yīng)用場(chǎng)景類似
?? ?3.均采用主從方式工作
不同點(diǎn)
?? ?1.IIC為半雙工,SPI為全雙工
?? ?2.IIC有應(yīng)答機(jī)制,SPI無應(yīng)答機(jī)制
?? ?3.IIC通過向總線廣播從機(jī)地址來尋址,SPl通過向?qū)?yīng)從機(jī)發(fā)送使能信號(hào)來尋址
?? ?4.IIC的時(shí)鐘極性和時(shí)鐘相位固定,SPI的時(shí)鐘極性和時(shí)鐘相位可調(diào)
SPI缺點(diǎn)
? ? ?
需要占用主機(jī)較多的口線(每個(gè)從機(jī)都需要一根片選線);?
?? ?只支持單個(gè)主機(jī);?
?? ?沒有指定的流控制,沒有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)
。
優(yōu)點(diǎn):
? ??
支持全雙工操作;?
?? ?操作簡(jiǎn)單;?
?? ?數(shù)據(jù)傳輸速率較高。你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

本文名稱:五種通信總線協(xié)議詳解-創(chuàng)新互聯(lián)
URL分享:http://chinadenli.net/article36/edisg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站改版、企業(yè)網(wǎng)站制作、外貿(mào)建站、品牌網(wǎng)站設(shè)計(jì)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容