軟件UART示例

軟件UART示例

ID:37675464

大小:741.22 KB

頁數(shù):34頁

時(shí)間:2019-05-28

軟件UART示例_第1頁
軟件UART示例_第2頁
軟件UART示例_第3頁
軟件UART示例_第4頁
軟件UART示例_第5頁
資源描述:

《軟件UART示例》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、CYGNAL應(yīng)用筆記AN015軟件UART示例相關(guān)器件本應(yīng)用筆記適用于下列器件C8051F000C8051F001C8051F002C8051F005C8051F006C8051F010C8051F011C8051F012C8051F015C8051F016C8051F017C8051F220C8051F221C8051F226C8051F230C8051F231C8051F236引言本應(yīng)用筆記討論基于C8051Fxxx系列器件的軟件UART實(shí)現(xiàn)方法本文給出兩個(gè)完整的例子一個(gè)用PCA為波特率發(fā)生器的C語言程序和一個(gè)用定時(shí)器0為波特率發(fā)

2、生器的匯編語言程序關(guān)鍵特性這兩個(gè)軟件設(shè)計(jì)示例在節(jié)省硬件資源和CPU帶寬的前提下幾乎完全模擬硬件UART的功能下面是兩個(gè)例子中都可以找到的關(guān)鍵特性y一個(gè)與硬件UART相似的接口有用戶級(jí)發(fā)送和接收中斷y中斷或查詢方式訪問支持y全雙工通信使用18.432MHz時(shí)鐘源時(shí)最大波特率可達(dá)57.6kbpsy基于狀態(tài)的中斷驅(qū)動(dòng)實(shí)現(xiàn)方案需要的CPU開銷最小y最少的硬件資源占用-C語言示例程序使用兩個(gè)PCA模塊-匯編語言示例程序使用定時(shí)器0工作于方式3實(shí)現(xiàn)選擇在實(shí)現(xiàn)一個(gè)軟件UARTSWUART時(shí)最重要的是在硬件占用和速度/效率之間權(quán)衡使用較多硬件的設(shè)計(jì)可

3、能消耗較小的CPU帶寬并允許較高的位速率這種權(quán)衡將在下面討論波特率源在傳輸每一位時(shí)都必須產(chǎn)生一個(gè)中斷在全雙工115.2kbps的速率下每4.3微秒產(chǎn)生一個(gè)中斷產(chǎn)生這些中斷波特率源的方法不同則實(shí)現(xiàn)時(shí)的CPU開銷會(huì)有很大的差異可能的選擇包括8位定時(shí)器16位定時(shí)器及可編程計(jì)數(shù)器陣列PCA注意對(duì)于全雙工操作需要兩個(gè)波特率源發(fā)送和接收各一個(gè)使用8位定時(shí)器的方案允許將一個(gè)16位硬件定時(shí)器用于產(chǎn)生發(fā)送和接收波特率定時(shí)器0工CYGNALIntegratedProducts,Inc.沈陽新華龍電子有限公司4301WestbankDrive沈陽市和平區(qū)青

4、年大街284號(hào)58號(hào)信箱SuiteB-100Copyright?2001CygnalIntegratedProducts,Inc.電話0242393036623940230Austin,TX78746版權(quán)所有電郵longhua@mail.sy.ln.cnwww.cygnal.com網(wǎng)址www.xhl.com.cnAN015軟件UART示例作于方式3時(shí)具有這種能力注意當(dāng)定時(shí)器0工作于方式3時(shí)定時(shí)器1的功能將減少但是定時(shí)器1仍可用作硬件UARTHWUART的波特率發(fā)生器使用8位定時(shí)器節(jié)省硬件資源但是會(huì)有CPU軟件開銷和延遲時(shí)間的問題這些問

5、題在例2中討論上述方法的一個(gè)替代方案是使用16位自動(dòng)重裝載定時(shí)器在這種情況下兩個(gè)16位硬件定時(shí)器被SWUART占用一個(gè)用于發(fā)送一個(gè)用于接收任何可用的定時(shí)器都能滿足要求但定時(shí)器2和定時(shí)器3的自動(dòng)重裝載能力可以減少軟件開銷并可消除任何中斷延遲問題此外16位定時(shí)器還可支持更寬的波特率范圍可編程計(jì)數(shù)器陣列PCA也為SWUART提供了一個(gè)很好的解決方案所提供的C語言示例能說明這一點(diǎn)PCA包含一個(gè)專用的16位計(jì)數(shù)器/定時(shí)器和五個(gè)16位的捕捉/比較模塊每個(gè)模塊都可以被設(shè)置為在PCA計(jì)數(shù)器與相對(duì)應(yīng)的比較模塊的內(nèi)容一致時(shí)觸發(fā)一個(gè)中斷由于PCA計(jì)數(shù)器在產(chǎn)

6、生中斷時(shí)并不停止運(yùn)行所以該方案可以避免中斷延遲累加的問題PCA實(shí)現(xiàn)方案不適用于C8051F2xx器件其它考慮上述的每種定時(shí)器源都可以用SYSCLK或一個(gè)外部信號(hào)作為時(shí)鐘在所提供的例子中波特率源用SYSCLK作為時(shí)鐘而SYSCLK源自外部的18.432MHz晶體任何波特率/晶體頻率組合都是允許的但軟件開銷限制了波特率與SYSCLK的最大比值起始位檢測(cè)也是SWUART接收器的一個(gè)重要問題C8051F00x和C8051F01x器件提供了很多外部中斷源其中有幾個(gè)可被配置用于檢測(cè)下降沿本文的兩個(gè)示例程序都使用外部中斷檢測(cè)起始位例1可編程計(jì)數(shù)器陣

7、列實(shí)現(xiàn)例1使用兩個(gè)PCA模塊產(chǎn)生接收和發(fā)送波特率分別為模塊0和1這兩個(gè)模塊被配置為軟件定時(shí)器方式用于產(chǎn)生波特率中斷對(duì)PCA的介紹見AN007程序結(jié)構(gòu)在軟件定時(shí)器方式當(dāng)PCA計(jì)數(shù)器與某個(gè)比較模塊中的值一致時(shí)PCA可產(chǎn)生一個(gè)中斷由于PCA計(jì)數(shù)器不會(huì)中斷運(yùn)行比較模塊可在每個(gè)位時(shí)間被更新以精確產(chǎn)生下一個(gè)位時(shí)間另外PCA還提供一個(gè)在起始位檢測(cè)中很有用的捕捉功能PCA模塊可通過交叉開關(guān)與外部信號(hào)連接這些信號(hào)對(duì)模塊n稱為CEXn可用于觸發(fā)PCA計(jì)數(shù)器捕捉在SWUART接收器中用到這一特性起始位識(shí)別是用模塊0實(shí)現(xiàn)的模塊0被配置為在RX引腳出現(xiàn)一個(gè)下降

8、沿時(shí)捕捉PCA計(jì)數(shù)器的內(nèi)容該功能有兩個(gè)優(yōu)點(diǎn)1起始位檢測(cè)容易實(shí)現(xiàn)2由于捕捉是在檢測(cè)到下降沿后立即完成的所以位采樣時(shí)間不受中斷響應(yīng)延遲的影響實(shí)現(xiàn)例1中的發(fā)送和接收操作是在PCA中斷服務(wù)程序的兩個(gè)獨(dú)立的狀態(tài)機(jī)中實(shí)現(xiàn)的這兩個(gè)狀態(tài)

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。