新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > 用ST16C2552實現DSP高速串行通訊擴展

        用ST16C2552實現DSP高速串行通訊擴展

        ——
        作者: 時間:2007-10-18 來源:國外電子元器件 收藏

          1 引言

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

          2 介紹

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

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

          3 硬件連接

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

          

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

          

          4 ST16C2552通訊流程和編程范例

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

          FIFO收發可以通過查詢方式來實現。在該模式下,通過FCR[5:4]設置發送FIFO觸發數。若設為14個,DSP能夠一次寫14個字節的數據,然后讀中斷狀態寄存器ISR判斷FIFO中的數據量是否低于設定的值,如果為低則繼續寫數據。同樣通過FCR[7:6]設置接收FIFO觸發數。若設置為14個,ST16C2552可一次從外面接收14個字節數據,DSP可以讀寄存器ISR判斷是否收滿,若已經收滿,可一次從ST16C2552讀入14個數據,通過讀寄存器LSR的0位判斷接收寄存器中是否還有數據,如果有,繼續讀出,直到讀完為止。

          FIFO收發也可以通過中斷方式來實現。若產生中斷則INT引腳為高電平。如果沒有配置ST16C2552工作在FIFO模式下,則DSP每次只能發送或者接收一個字節的數據,就觸發中斷或者查詢寄存器狀態位。這里給出來用中斷方式進行通訊的流程和C語言程序。

          設ST16C2552處于被動響應通訊方式,初始設置為接收狀態,接收上位機數據,判斷處理后轉為發送方式向上位機回復數據。

          4.1 初始化

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

          

          

          

          4.2 中斷發送和接收

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

          

          

          

          

          5 結束語

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 睢宁县| 凌海市| 巴彦淖尔市| 湘潭县| 常山县| 托里县| 赣榆县| 得荣县| 新巴尔虎右旗| 宁夏| 荣昌县| 石楼县| 漳州市| 广水市| 华容县| 商丘市| 广东省| 孟津县| 天门市| 化州市| 长泰县| 准格尔旗| 呼伦贝尔市| 宕昌县| 德阳市| 兴业县| 公主岭市| 嘉义市| 郓城县| 赞皇县| 长宁县| 集贤县| 高州市| 新疆| 镇安县| 明水县| 阳新县| 托克逊县| 绥滨县| 磐石市| 沁阳市|