<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設計應用 > 用ST16C2552實(shí)現DSP高速串行通訊擴展

用ST16C2552實(shí)現DSP高速串行通訊擴展

——
作者: 時(shí)間:2007-10-18 來(lái)源:國外電子元器件 收藏

  1 引言

  隨著(zhù)大規模集成電路工藝技術(shù)的迅速發(fā)展,已經(jīng)越來(lái)越廣泛地應用于工業(yè)場(chǎng)合。工業(yè)現場(chǎng)由于許多場(chǎng)合通訊雙方相距較遠,為了保證通訊成本和可靠性,必須采用串行方式進(jìn)行通訊。目前TI公司都只有一個(gè)UART口,比如TMS320LF2407,當同時(shí)需要與上位機和下面的被控對象進(jìn)行通訊,或者同時(shí)連接幾個(gè)上位機時(shí),則需要對進(jìn)行串行通訊口擴展,而使用可編程的可以一次擴展兩組相互獨立的串口,滿(mǎn)足各種條件下串行通訊的要求。

  2 介紹

  是Exar公司生產(chǎn)的通用異步通訊擴展器件,并與飛利浦公司的SC16C2552相兼容,可擴展2路獨立的串行通訊,可編程設定通訊起始位、停止位和校驗位以確保通訊的可靠性,可編程配置各種不同的波特率,在24 MHz的時(shí)鐘下,STl6C2552的數據傳輸速率可高達1.5 Mbit/s。ST16C2552提供16字節的接收和發(fā)送FIFO,允許用戶(hù)配置四種不同的中斷出發(fā)點(diǎn),DSP可以根據配置一次并行讀人多個(gè)數據,提高了傳輸效率,節省了DSP的工作時(shí)間。STl6C2552在2.5 V、3.3 V、5 V供電條件下均可以正常工作,不需要增加任何緩沖器件就可以和各種DSP或者直接連接,非常方便。

  ST16C2552提供了兩套內部寄存器,每套由12個(gè)寄存器組成,用于監測和控制UART每個(gè)通道的功能。分別為:發(fā)生/接收數據保存寄存器(THR/RHR)、中斷狀態(tài)和控制寄存器(IER/ISR)、FIFO控制寄存器(FCR)、線(xiàn)狀態(tài)和控制寄存器(LCR/15R)、調制解調器狀態(tài)和控制寄存器(MCR/MSR)、可編程數據速率(時(shí)鐘)控制寄存器(DLL/DLM),一個(gè)用戶(hù)可訪(fǎng)問(wèn)的暫存寄存器(SPR)和一個(gè)選擇功能寄存器(AFR)。

  3 硬件連接

  ST16C2552和TMS320LF2407的硬件連接方法如圖1所示,DSP的數據線(xiàn)DO~D7與ST16C2552的數據線(xiàn)DO~D7相連。DSP地址線(xiàn)A0~A2與ST16C2552的地址線(xiàn)A0~A2相連。DSP的地址線(xiàn)A3與ST16C2552的通道選擇引腳CHSEL相連。DSP的外部空間選擇引腳IS與ST16C2552的片選

  

  引腳CS相連。兩個(gè)通道的中斷引腳分別連接到DSP的外部中斷引腳XINT1和XINT2。采用有源14.7456 MHz晶體振蕩器為ST16C2552提供時(shí)鐘頻率。兩組UART分別通過(guò)兩個(gè)MAX3485連接到外部RS-485總線(xiàn),MAX3485的使能由DSP的IOPC6和。IOPC7兩引腳控制,整個(gè)系統采用3.3 V供電。圖2為ST16C2552和TMS320LF172407的最小系統原理圖。

  

  4 ST16C2552通訊流程和編程范例

  ST16C2552的內部寄存器通過(guò)3根地址線(xiàn)A0~A2進(jìn)行尋址,通過(guò)配置寄存器LCR確定具體尋址的寄存器。通過(guò)不同的寄存器配置,可以實(shí)現需要的各種功能。ST16C2552內部分別有16字節的發(fā)送和接收FIFO,通過(guò)寄存器對FCR的FCR[0]置1使能,使ST16C2552工作在FIFO模式。

  FIFO收發(fā)可以通過(guò)查詢(xún)方式來(lái)實(shí)現。在該模式下,通過(guò)FCR[5:4]設置發(fā)送FIFO觸發(fā)數。若設為14個(gè),DSP能夠一次寫(xiě)14個(gè)字節的數據,然后讀中斷狀態(tài)寄存器ISR判斷FIFO中的數據量是否低于設定的值,如果為低則繼續寫(xiě)數據。同樣通過(guò)FCR[7:6]設置接收FIFO觸發(fā)數。若設置為14個(gè),ST16C2552可一次從外面接收14個(gè)字節數據,DSP可以讀寄存器ISR判斷是否收滿(mǎn),若已經(jīng)收滿(mǎn),可一次從ST16C2552讀入14個(gè)數據,通過(guò)讀寄存器LSR的0位判斷接收寄存器中是否還有數據,如果有,繼續讀出,直到讀完為止。

  FIFO收發(fā)也可以通過(guò)中斷方式來(lái)實(shí)現。若產(chǎn)生中斷則INT引腳為高電平。如果沒(méi)有配置ST16C2552工作在FIFO模式下,則DSP每次只能發(fā)送或者接收一個(gè)字節的數據,就觸發(fā)中斷或者查詢(xún)寄存器狀態(tài)位。這里給出來(lái)用中斷方式進(jìn)行通訊的流程和C語(yǔ)言程序。

  設ST16C2552處于被動(dòng)響應通訊方式,初始設置為接收狀態(tài),接收上位機數據,判斷處理后轉為發(fā)送方式向上位機回復數據。

  4.1 初始化

  ST16C2552初始化流程如圖3所示,C語(yǔ)言程序如下:

  

  

  

  4.2 中斷發(fā)送和接收

  以通道1為例,系統中斷發(fā)送、接收數據流程分別如圖4、5所示,C語(yǔ)言程序如下:

  

  

  

  

  5 結束語(yǔ)

  基于DSP和ST16C2552的硬件連接已經(jīng)調試成功,TMS320LF2407的程序也通過(guò)了CCS編譯,并在電路板上調試成功。調試結果表明,在波特率115 200 b/s下通訊數據傳輸準確,誤碼率極低。該系統現已應用于產(chǎn)品中。只要將該設計的電路連接和程序稍加改動(dòng),就可以應用于其他DSP、的高速串行口擴展,非常有用。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>