<form id="itnzz"><noscript id="itnzz"></noscript></form>

          1. <menuitem id="itnzz"></menuitem>
          2. 成人午夜激情在线观看,国产精品一线天粉嫩av,99精品国产综合久久久久五月天 ,一卡2卡三卡4卡免费网站,国产高清在线男人的天堂,五月天国产成人AV免费观看,67194熟妇在线观看线路,成人无码潮喷在线观看
            現在位置:范文先生網>理工論文>電子通信論文>TMS320C32擴展異步串口的方法

            TMS320C32擴展異步串口的方法

            時間:2023-02-20 23:17:11 電子通信論文 我要投稿
            • 相關推薦

            TMS320C32擴展異步串口的方法

            摘要:介紹了TMS320C32 DSP實現異步串行通信接口的三種方法:軟件模擬實現、硬件實現、專用協議芯片實現。給出了具體實現的硬件接口和軟件編程。在接口的第二種和第三種實現方法中,都使用了FPGA實現邏輯接口。

                關鍵詞:數字信號處理 異步串行接口 現場可編程邏輯陣列 電氣傳動控制

            高速數字信號處理器(DSP)在現代工業控制中,特別是電氣傳動控制中的應用非常廣泛。大量文獻介紹的應用于電氣傳動控制的DSP使用的是TI公司的,TMS320系列DSP芯片,這其中又以TMX210C3X和TMS320F24X為主流應用產品。TMS320C32(以下簡稱為C32)是TMS320C3X系列產品中應用比較多的一種。主工業控制中,常常需要使用上位PC機來控制底層的DSP芯片,一般采用異步串行通信協議,使用RS-232或485來實現。C32自身帶有的串口為同步串口。為了實現C32和PC機之間的串行口通信,必須擴展C32的全雙工異步串口(UART)功能。

            C32實現UART接口的方法有三種:

            (1)使用C32的現有資源模擬串行口的功能;

            (2)使用可編程芯片(例如FPGA)實現同步和異步協議的轉換;

            (3)使用專用的異步通信器件(ACE)實現,例如PC機上使用16C550系列實現UART。
            (范文先生網www.ycxgx.cn收集整理)
            1 使用C32的現有資源模擬串行口的功能

            通過使用兩個通用I/O引腳、兩個定時器和一個外部中斷,可以用軟件模擬UART的功能。使用中斷實現軟件模擬UART采用的通訊格式為:波特率9600bPs、8個數據位、一個停止位、無奇偶校驗位。這種實現方法由Ted Fried高級計算機通信公司提供。

            1.1 硬件

            圖1為硬件連接線圖。接收線同時接到INT0和XFl引腳。起始位數據的下降沿觸發外部中斷INT0。傳輸線接到XFO引腳,使用上拉電阻輸出。

            圖2

                1.2 軟件

            1.2.1 接收數據

            根據UAHT協議,接收到的第一個數據是起始位,在軟件中。起始位會觸發一個外部中斷INT0。害INT0的中斷服務程序例程RXINT0中,定時器0首先玻裝入一個時間常數,這個時間常數的定時時間等于半個數據位的延遲時間;然后裝入定時器0的中斷向量表,并允許定時器中斷0,程序返回主程序,等待定時器0中斷。如果定時器0觸發中斷,RX-TMR-INT(接收定時器中斷)例程則開始技行接收工作。第一個定時時間為半個數捉位的時間.CPU在接收位的中間時刻采樣XFI的數據,并且驗證接收到的數據是否為一個低電平。如果驗證正確,表示接收到的數據為一個起始位,就可以接收數據了。在接收數據時,重新裝載定時器0的定時值為一個數據位的時間并且啟動定時器0,程序返回主程序,等待定時器0中斷的到來。

            在隨后的定時器0的服務程序中,實現了在接收位的中間時刻采樣接收線的狀態來得到實際數據。將這些接收到的數據移位到一個存儲器單元中。在第9次中斷時,對接收到的停止位進行驗證。如果正確,軟件執行一個陷阱中斷,程序返回到主程序。如果不正確,調用BAD_STOP_BIT子程序進行相應的錯誤處理。接收數據被處理完后,重新允許外部中斷0,等待下一個起始位的到來。

            1.2.2 發送數據

            發送數據例程開始于主程序裝載一個數據到指定的存儲器中,并且調用TX_MAIN例程。在這個例程中,狀態定時器1的定時時間為一個數據位的時間,重新設置傳輸計數器的值,設置起始位,并且允許定時器l中斷,返回主程序,等待定時器1中斷的到來。只有傳輸計數器的值為0時,主程序才會允許重新裝載下一個需要傳輸的數據到指定的存儲器中。在定時器1的中斷子程序TX_INT中,程序將要傳輸的數據(包含起始位、數據位和停止位)從XF0引腳上移位出去,直到傳輸計數器的值為0。

            圖3

                具體的程序代碼請見參考文獻[1]。

            2 使用FPGA實現異步和同步串行接口間的協議轉換

            有許多應用需要使用硬件UART。使用FPGA可以將同步串行口協議轉換為異步串行口通信協議。具體的邏輯框圖如圖2所示。

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

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

            當電路檢測到起始位時,接收電路開始工作。起始位的邏輯擅為0。延遲電路在起始位的下降沿被激活。延遲電路的設置使數據的采樣發生在每個數據位的中間時刻,它提高了系統抗噪聲的能力。

            圖4

            3 使用ACE實現UART

            微機上最早使用的ACE是8250,16C550是8250的功能升級器件。器件在結構上的最大差別是16C550增加了接收和發送FIFO,因此器件能夠處于交替工作模式,減輕CPU額外的軟件負擔。在這種模式下,無論是接收還是發送,在可訪問的緩沖寄存器和不可訪問的移位寄存器之間都增加了16字節的FIFO(包含放在接收FIFO中的3位錯誤數據字節),可以使系統負擔最小且系統效率最高,而且所有的邏輯功能都在16C550芯片上完成。TLl6C550A有兩個管腳功能(N封裝系列中引腳24和29,FN封裝系列中的27和32)已經被改變,使用這兩個信號可以允許信號使用DMA的方式來傳輸。

            TLl6C550的主要功能為:TLl6C550在接收外部器件或MODEM的數據時?完成串行到并行的轉換;在接收CPU的數據時,完成數據的并行到串行的變換,并進行串行發送。在ACE器件工作的任何狀態下,CPU可以讀和通報ACE器件的狀態。通報的狀態信息包括:傳輸操作正在進行過程中、操作狀態、遇到了何種錯誤等,TLl6C550的內部包含一個可編程的波特率發生器,波特率為16x內部輸入時鐘頻率.此內部輸入時鐘頻率由輸入的參考基準振蕩器分頻(由波特率分頻寄存器的值決定)得到。TLl6C550具有完全的MODEM控制能力。包含一個處理器中斷系統,根據用戶的專用需要而設計,在處理通訊連接時,計算量是最小的。TLl6C550有兩種封裝形式:N PACKAGE (40腳) 和FN PACKAGE(44腳)。TL16C550的管腳按功能可以分為:外部時鐘輸入及波特率控制信號;數據和地址總線;片選及讀寫控制信號;MODEM控制信號;復位及中斷控制信號。

            如果C32要和PC機通訊,可使用TL16C550完成串行協議的轉換。TLl6C550的輸出接口要和一個電平轉換芯片連接,用于和PC機的串行通訊接口互聯。完整的接口示意圖如圖5所示。

                其中的MAX232可以使用MAXIM公司的MAX3238來實現。

            接口電路分為兩大部分:DSP C32和串行通訊芯片TLl6C550之間的接口;串行通訊芯片TLl6C550和PC機之間的接口。完整的電路原理圖如圖6所示。

            接口邏輯可以使用集成的CPLD實現,本系統中使用的是ALTERA公司的EPM7128SLC184-10。它將芯片TLl6C550作為DSP C32的一個外設端口送行尋址。

            圖6

                相應的接口邏輯使用AHDL語言描述,具體如下:

            TL16C550A一共使用8個地址對內部寄存器進行訪問和控制。相對DSP C32系統而言,如果使用了上面的譯碼邏輯電路,則占用的8個地址為:0X818000~0X818007。

            TLl6C550A串行接口寄存器的尋址表如表1所示。

            表1 TL16C550A的寄存器尋址表

            DLAB* A2  A1  A0 寄  存  器  名  屬 性  地址值  0 0   0   0 接收緩沖寄存器RBR  只讀  0X818000  0 0   0   0 發送緩沖寄存器TBR  只寫  0X818000  0 0   0   1 中斷使能寄存器IER  讀/寫  0X818001  X 0   1   0 中斷標志寄存器IIR  只寫  0X818002  X 0   1  0 FIFO控制寄存器FCR  只寫  0X818002  X 0   1   1 線路控制寄存器LCR  讀/寫  0X818003  X 1   0  0 MODEM控制寄存器MCR  讀/寫  0X818004  X 1   0   1 線路狀態寄存器LSR  讀/寫  0X818005  X 1   1   0 MODEM狀態寄存器MSR  讀/寫  0X818006  X 1   1   1 便簽寄存器SCR  讀/寫  0X818007  1 0   0   0 除數低字節鎖存器DLL  讀/寫  0X818000  1 0   0   1 除數低字節鎖存器DLH  讀/寫  0X818001 

            DLAB表示線路控制寄存器的第7位的邏輯值。

            在程序中,使用邏輯地址0X818000~0X818007對TLl6C550A的各個寄存器進行尋址就可以了。

            本文介紹的三種實現C32異步串行口的方法,前兩種方法使用不是非常方便,而且占用了大量的C32系統資源,一般都使用第三種方法來實現C32和PC機之間的通信。

            使用TL16C550實現DSP和PC機的通信,接口方便、控制簡單、編程靈活,試驗證明它是非常簡便可靠的實現方法。


            【TMS320C32擴展異步串口的方法】相關文章:

            通用異步串口擴展芯片GM8123/25的原理和應用08-06

            UART多串口擴展器SP2338DP及其應用08-06

            RS-232多串口擴展器件SP2538及其應用08-06

            一種異步FIFO的設計方法08-06

            TMS320C32 DSP的中斷編程方法及BOOT功能實現08-06

            擴展語句08-16

            GPS串口數據接收程序實例08-06

            Windows下多串口的配置與使用08-06

            單片機中斷多優先級的軟件擴展方法08-06

            主站蜘蛛池模板: 最新亚洲av日韩av二区| 午夜av高清在线观看| 亚洲国产精品综合久久网络| 免费无码av片在线观看网址| 熟妇人妻av中文字幕老熟妇| 97成人碰碰久久人人超级碰oo| 国产欧美精品一区二区三区-老狼| 一区二区三区在线 | 欧洲| 最新日韩精品中文字幕| 欧美性大战xxxxx久久久√| 手机看片日韩国产毛片| 国产福利微视频一区二区| 亚洲熟妇色xxxxx亚洲| 国产成人精品国产成人亚洲| 国产av亚洲一区二区| 国产一区二区三区国产视频 | 蜜臀91精品高清国产福利| 夜夜爽77777妓女免费看| 国产精品国产精品偷麻豆| 亚洲第一精品一二三区| 国产亚洲精品自在久久vr| 樱花草在线社区www| 成年女人喷潮免费视频 | 亚洲中文无码永久免费| 久热综合在线亚洲精品| 日本无人区码卡二卡三卡| 中文字幕无码视频手机免费看| www成人国产高清内射| 精品一区二区久久久久久久网站| 一区二区三区国产不卡| 熟女人妻aⅴ一区二区三区电影| 亚洲粉嫩av一区二区黑人| 国产一区二区日韩经典| 自拍偷自拍亚洲一区二区| 亚洲丰满熟女一区二区蜜桃| 国产精品XXXX国产喷水| 国产尤物AV尤物在线看| 人妻少妇精品中文字幕| 亚洲色大成成人网站久久| 国产91久久精品成人看| 免费看黄色片|