《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > TMS320C32擴展異步串口的方法

TMS320C32擴展異步串口的方法

2008-09-05
作者:胡 安 肖 飛1 張波濤2

??? 摘 要: 介紹了TMS320C32 DSP實現異步串行通信接口的三種" title="三種">三種方法:軟件模擬實現、硬件實現、專用協議芯片實現。給出了具體實現的硬件接口和軟件編程。在接口的第二種和第三種實現方法中,都使用了FPGA實現邏輯接口。
??? 關鍵詞: 數字信號處理? 異步串行接口? 現場可編程邏輯陣列? 電氣傳動控制

?

??? 高速數字信號處理器(DSP)在現代工業控制中,特別是電氣傳動控制中的應用非常廣泛。大量文獻介紹的應用于電氣傳動控制的DSP使用的是TI公司的TMS320系列DSP芯片,這其中又以TMX320C3X和TMS320F24X為主流應用產品。TMS320C32(以下簡稱為C32)是TMS320C3X系列產品中應用比較多的一種。在工業控制中,常常需要使用上位PC機來控制底層的DSP芯片,一般采用異步串行通信協議,使用RS-232或485來實現。C32自身帶有的串口" title="串口">串口為同步串口,為了實現C32和PC機之間的串行口通信,必須擴展C32的全雙工異步串口(UART)功能。
??? C32實現UART接口的方法有三種:
??? (1)使用C32的現有資源模擬串行口的功能;
??? (2)使用可編程芯片(例如FPGA)實現同步和異步協議的轉換;
??? (3)使用專用的異步通信器件(ACE)實現,例如PC機上使用16C550系列實現UART。
1 使用C32的現有資源模擬串行口的功能[1]
??? 通過使用兩個通用I/O引腳、兩個定時器和一個外部中斷,可以用軟件模擬UART的功能。使用中斷實現軟件模擬UART采用的通訊格式為:波特率9600bps、8個數據位、一個停止位、無奇偶校驗位。這種實現方法由Ted Fried高級計算機通信公司提供。
1.1 硬 件
??? 圖1為硬件連接線圖。接收線同時接到和XF1引腳。起始位數據的下降沿觸發外部中斷。傳輸線接到XF0引腳,使用上拉電阻輸出。

?


1.2 軟 件
1.2.1 接收數據

??? 根據UART協議,接收到的第一個數據是起始位。在軟件中,起始位會觸發一個外部中斷。在的中斷服務程序例程" title="例程">例程RXINT0中,定時器0首先被裝入一個時間常數,這個時間常數的定時時間等于半個數據位的延遲時間;然后裝入定時器0的中斷向量表,并允許定時器中斷0,程序返回主程序" title="主程序">主程序,等待定時器0中斷。如果定時器0觸發中斷,RX-TMR-INT(接收定時器中斷)例程則開始執行接收工作。第一個定時時間為半個數據位的時間,CPU在接收位的中間時刻采樣XF1的數據,并且驗證接收到的數據是否為一個低電平。如果驗證正確,表示接收到的數據為一個起始位,就可以接收數據" title="接收數據">接收數據了。在接收數據時,重新裝載定時器0的定時值為一個數據位的時間并且啟動定時器0,程序返回主程序,等待定時器0中斷的到來。
??? 在隨后的定時器0的服務程序中,實現了在接收位的中間時刻采樣接收線的狀態來得到實際數據。將這些接收到的數據移位到一個存儲器單元中。在第9次中斷時,對接收到的停止位進行驗證。如果正確,軟件執行一個陷阱中斷,程序返回到主程序。如果不正確,調用BAD_STOP_BIT子程序進行相應的錯誤處理。接收數據被處理完后,重新允許外部中斷0,等待下一個起始位的到來。
1.2.2 發送數據
??? 發送數據例程開始于主程序裝載一個數據到指定的存儲器中,并且調用TX_MAIN例程。在這個例程中,狀態定時器1的定時時間為一個數據位的時間,重新設置傳輸計數器的值,設置起始位,并且允許定時器1中斷,返回主程序,等待定時器1中斷的到來。只有傳輸計數器的值為0時,主程序才會允許重新裝載下一個需要傳輸的數據到指定的存儲器中。在定時器1的中斷子程序TX_INT中,程序將要傳輸的數據(包含起始位、數據位和停止位)從XF0引腳上移位出去,直到傳輸計數器的值為0。
??? 具體的程序代碼請見參考文獻[1]。
2 使用FPGA實現異步和同步串行接口間的協議轉換
??? 有許多應用需要使用硬件UART。使用FPGA可以將同步串行口協議轉換為異步串行口通信協議。具體的邏輯框圖如圖2所示。

?


??? 系統使用的時鐘為25MHz,FPGA中使用的時鐘來源于C32的H3引腳。通信協議為:波特率9600bps、一個起始位、一個停止位、沒有奇偶檢驗位。圖3所示為傳輸電路。

?


??? 通過設置傳輸定時器的定時值可以得到需要的9600bps的波特率。傳輸端口被配置為爆發傳輸模式,它可以產生UART的一個起始位。8個數據位之后的停止位可通過電路來實現。圖4為接收電路圖。

?


??? 當電路檢測到起始位時,接收電路開始工作。起始位的邏輯值為0。延遲電路在起始位的下降沿被激活。延遲電路的設置使數據的采樣發生在每個數據位的中間時刻,它提高了系統抗噪聲的能力。
3 使用ACE實現UART
??? 微機上最早使用的ACE是8250,16C550是8250的功能升級器件。器件在結構上的最大差別是16C550增加了接收和發送FIFO,因此器件能夠處于交替工作模式,減輕CPU額外的軟件負擔。在這種模式下,無論是接收還是發送,在可訪問的緩沖寄存器和不可訪問的移位寄存器之間都增加了16字節的FIFO(包含放在接收FIFO中的3位錯誤數據字節),可以使系統負擔最小且系統效率最高,而且所有的邏輯功能都在16C550芯片上完成。TL16C550A有兩個管腳功能(N封裝系列中引腳24和29,FN封裝系列中的27和32)已經被改變,使用這兩個信號可以允許信號使用DMA的方式來傳輸。
??? TL16C550的主要功能為:TL16C550在接收外部器件或MODEM的數據時,完成串行到并行的轉換;在接收CPU的數據時,完成數據的并行到串行的變換,并進行串行發送。在ACE器件工作的任何狀態下,CPU可以讀和通報ACE器件的狀態。通報的狀態信息包括:傳輸操作正在進行過程中、操作狀態、遇到了何種錯誤等。TL16C550的內部包含一個可編程的波特率發生器,波特率為16×內部輸入時鐘頻率,此內部輸入時鐘頻率由輸入的參考基準振蕩器分頻(由波特率分頻寄存器的值決定)得到。TL16C550具有完全的MODEM控制能力。包含一個處理器中斷系統,根據用戶的專用需要而設計,在處理通訊連接時,計算量是最小的。TL16C550有兩種封裝形式:N PACKAGE(40腳)和FN PACKAGE(44腳)。TL16C550的管腳按功能可以分為:外部時鐘輸入及波特率控制信號;數據和地址總線;片選及讀寫控制信號;MODEM控制信號;復位及中斷控制信號。
??? 如果C32要和PC機通訊,可使用TL16C550完成串行協議的轉換。TL16C550的輸出接口要和一個電平轉換芯片連接,用于和PC機的串行通訊接口互聯。完整的接口示意圖如圖5所示。

?


??? 其中的MAX232可以使用MAXIM公司的MAX3238來實現。
??? 接口電路分為兩大部分:DSP C32和串行通訊芯片TL16C550之間的接口;串行通訊芯片TL16C550和PC機之間的接口。完整的電路原理圖如圖6所示。

?


??? 接口邏輯可以使用集成的CPLD實現,本系統中使用的是ALTERA公司的EPM7128SLC184-10。它將芯片TL16C550作為DSP C32的一個外設端口進行尋址。
??? 相應的接口邏輯使用AHDL語言描述,具體如下[3]:
??? subdesign uartcon?
????(
???????dspa[23..12]?:input;??%DSP C32 的高位地址線輸入信號%
?? ?? ?ios??????????:input;? %DSP C32的外設端口選擇信號%
?? ?? ?dsprw????????:input;? %DSP C32的read/write signal %
???????resetin????? :input;? %系統的復位信號輸入端%
?? ?? ?dspint1????? :output; %DSP C32的中斷1信號輸入端 %
?? ?? ?tlmr?????????:output; %TL16C550A的復位輸入端%
?? ?? ?tlintrpt???? :input;??%TL16C550A的中斷輸出端%
?? ?? ?tlcs?????????:output; %TL16C550A的片選端%
?? ?? ?tlrd?????????:output;?%TL16C550A的讀允許端口%
?? ?? ?tlwr???????? :output;?%TL16C550A的寫允許端口%
???????? )
???? begin
??? ? ?defaults
???? ??? ??tlcs=1;
???? ??end defaults;
???? ??tlmr=!resetin;???????%TL16C550A的復位輸入端的信號定義和通常的相反%
???? ??int1=!tlintrpt;??????%DSP C32的中斷輸入端為低電平有效 %
?????? ? ??TABLE
????? ?? ??dspa[23..12],ios,dsprw=>t;cs,tlrd,tlwr;
???????????H″818″, 0,? 1=>0, 0, 1;
???? ??????H″818″, 0,? 0=>0, 1, 0;
???? ??END TABLE;
??? end
??? TL16C550A一共使用8個地址對內部寄存器進行訪問和控制。相對DSP C32系統而言,如果使用了上面的譯碼邏輯電路,則占用的8個地址為:0X818000~0X818007。
??? TL16C550A串行接口寄存器的尋址表如表1所示。

?


??? 在程序中,使用邏輯地址0X818000~0X818007對TL16C550A的各個寄存器進行尋址就可以了。
??? 本文介紹的三種實現C32異步串行口的方法,前兩種方法使用不是非常方便,而且占用了大量的C32系統資源,一般都使用第三種方法來實現C32和PC機之間的通信。
??? 使用TL16C550實現DSP和PC機的通信,接口方便、控制簡單、編程靈活,試驗證明它是非常簡便可靠的實現方法。
參考文獻
1 TMS320C3X General-purpose Applications.Texax Instruments,1998
2 TMS320C3X Users Guide.Texas Instruments, 1992
3 宋萬杰.CPLD 技術及其應用.西安:西安電子科技大學出版社,2001
4 TL16C550 Data Sheet.Texas Instruments,1996
5 MAX3238 Data Sheet.Maxim Instruments, 2002

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧洲精品一区二区三区| 日韩视频一区二区在线观看| 韩国av一区二区三区在线观看| 欧美激情亚洲激情| 久久国产精品久久久久久电车| 99精品国产福利在线观看免费| 欧美一级在线视频| 亚洲视频在线一区| 国内精品国语自产拍在线观看| 玖玖综合伊人| 欧美一区二视频在线免费观看| 最新亚洲一区| 亚洲电影在线看| 午夜精品久久99蜜桃的功能介绍| 日韩视频中午一区| 亚洲国产精品黑人久久久 | 欧美日本网站| 麻豆精品视频| 久久天天躁狠狠躁夜夜爽蜜月| 西西裸体人体做爰大胆久久久| 中日韩高清电影网| 99国产一区二区三精品乱码| 亚洲激情电影中文字幕| 久久精品国产一区二区电影| 欧美一区二区视频在线| 亚洲欧美激情诱惑| 亚洲尤物视频在线| 亚洲午夜激情网页| 亚洲一区二区三区高清不卡| 日韩性生活视频| 99国产精品久久久久久久久久 | 亚洲欧美国产一区二区三区| 亚洲调教视频在线观看| 一区二区三区偷拍| 亚洲视频在线观看一区| 一区二区三区波多野结衣在线观看| 亚洲理论在线| 一区二区91| 亚洲午夜一区二区| 亚洲在线电影| 欧美一区二区三区啪啪| 午夜精品久久久久99热蜜桃导演| 亚洲一区精品视频| 亚洲欧美综合国产精品一区| 亚洲日本成人女熟在线观看| 亚洲第一精品夜夜躁人人躁| 久久精品日产第一区二区| 亚洲大胆女人| 亚洲激情黄色| 亚洲乱码国产乱码精品精天堂| 亚洲美女视频网| 夜夜嗨av一区二区三区网页| 亚洲一区二区三| 欧美一区二视频| 久久全国免费视频| 欧美国产日韩一区二区| 欧美久久久久久久久| 欧美三级在线播放| 国产精品男女猛烈高潮激情| 国产情侣一区| 亚洲成色999久久网站| 亚洲国产另类 国产精品国产免费| 91久久久久久久久久久久久| 在线视频一区二区| 欧美一区二区三区另类| 亚洲电影在线| 一区二区国产日产| 欧美影院久久久| 农村妇女精品| 国产精品igao视频网网址不卡日韩| 国产精品一区二区久激情瑜伽| 国产一区 二区 三区一级| 在线成人激情视频| 99re在线精品| 久久av一区二区三区漫画| 亚洲美女av网站| 欧美亚洲日本一区| 免费日韩av片| 国产精品久久久久久久久久久久久久 | 国产精品视频福利| 精品69视频一区二区三区| 亚洲美女诱惑| 亚洲欧美日韩视频一区| 亚洲国产精品久久人人爱蜜臀| 亚洲免费观看高清在线观看| 亚洲欧美视频在线观看| 久久中文在线| 欧美日韩亚洲一区在线观看| 国产日韩欧美91| 亚洲黄色免费| 精品1区2区3区4区| 亚洲电影在线观看| 亚洲免费av网站| 亚洲综合电影| 日韩亚洲一区二区| 久久久999成人| 欧美三级乱码| 精品999日本| 亚洲一本视频| 99精品国产高清一区二区| 久久精品2019中文字幕| 欧美日韩国产首页| 韩国精品一区二区三区| 亚洲午夜黄色| 亚洲免费电影在线| 久久久国产精品一区二区中文| 欧美日韩国产a| 玉米视频成人免费看| 国产精品免费一区二区三区在线观看| 久久综合狠狠| 欧美日韩在线一区二区| 红杏aⅴ成人免费视频| 在线一区观看| 亚洲人久久久| 久久蜜桃精品| 国产精品自拍在线| 日韩小视频在线观看| 亚洲国产精品va在看黑人| 欧美一区影院| 国产精品第一页第二页第三页| 在线观看日韩av先锋影音电影院| 亚洲欧美日韩精品久久久久| 亚洲一区二区免费| 欧美精品一区在线发布| 在线看片一区| 欧美一区二区在线免费播放| 亚洲欧美偷拍卡通变态| 欧美日韩视频在线观看一区二区三区| 在线播放日韩| 亚洲国产成人高清精品| 久久久久久久波多野高潮日日| 国产精品天天看| 在线看欧美日韩| 亚洲国产精品99久久久久久久久| 久久久www成人免费毛片麻豆| 国产精品欧美经典| 一区二区三区波多野结衣在线观看| 日韩一级片网址| 欧美精品精品一区| 亚洲欧洲日本国产| 亚洲剧情一区二区| 欧美国产日韩一区二区三区| 亚洲高清在线| 亚洲精品视频二区| 女人香蕉久久**毛片精品| 一区免费观看| 亚洲高清电影| 亚洲精品一区二区三区四区高清| 欧美成人激情视频| 最新成人av在线| 一区二区三区国产盗摄| 欧美日韩你懂的| 一区二区三区**美女毛片| 亚洲自拍偷拍麻豆| 国产精品一区免费视频| 午夜精品福利一区二区三区av| 久久99伊人| 国产伊人精品| 亚洲国产成人av在线| 欧美成人自拍| 亚洲美女黄色| 亚洲欧美欧美一区二区三区| 国产精品一区二区欧美| 午夜精品久久久久久久白皮肤| 久久福利电影| 激情欧美一区二区| 亚洲乱码精品一二三四区日韩在线| 欧美精品一区二区三区很污很色的| 亚洲精品裸体| 亚洲欧美亚洲| 一区二区在线不卡| 亚洲一区二区高清| 一区二区三区我不卡| 亚洲一区在线视频| 午夜精品一区二区三区在线视| 国产午夜精品视频| 亚洲三级性片| 国产精品老女人精品视频| 久久精品国亚洲| 久久躁狠狠躁夜夜爽| 亚洲日本va午夜在线影院| 欧美一区在线看| 亚洲人成毛片在线播放| 欧美综合第一页| 日韩亚洲精品电影| 鲁大师成人一区二区三区| 一本久道久久综合中文字幕 | 欧美wwwwww| 午夜欧美电影在线观看| 欧美寡妇偷汉性猛交| 午夜激情综合网| 欧美日韩一区在线观看| 亚洲国产精品一区制服丝袜 | 国产精品乱码一区二三区小蝌蚪| 久久成人精品视频| 国产精品v一区二区三区| 亚洲黄色av| 国产一区在线视频| 亚洲在线观看视频网站| 亚洲国产精品va在看黑人|