新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 一種基于FPGA和SC16C554實現(xiàn)多串口通信的方法

一種基于FPGA和SC16C554實現(xiàn)多串口通信的方法

作者: 時間:2009-08-12 來源:網(wǎng)絡 收藏
State0:空閑狀態(tài),當沒有數(shù)據(jù)時狀態(tài)機一直停留在空閑狀態(tài);
State 1:賦IsR寄存器地址給UART_A,置通道標志寄存器CS[2:O]=001(表示A通道);
State2:讀ISR,判斷中斷類型(04為接受數(shù)據(jù)準備好中斷),賦LSR寄存器地址給UART、A;
State3:讀LSR,判斷是否有數(shù)據(jù)(LSR[0]=1表示有數(shù)據(jù)在RHR內(nèi)),賦RHR寄存器地址給UART A;
State4:讀RHR,讀取數(shù)據(jù)。
多通道工作時,可以通過增加狀態(tài)機狀態(tài)來。完成一個通道的讀數(shù)操作需要四個狀態(tài),當四個通道同時工作時,狀態(tài)機的狀態(tài)需要增加到17個。其中Stare5~State8完成對通道B的操作;其中State9~State12完成對通道C的操作;其中State13~State16完成對通道D的操作。
3.3 讀時序設計
的通用讀時序圖如下:

本文引用地址:http://butianyuan.cn/article/157889.htm

其中t6s=0ns t6h=0ns t7h=0ns t7d=10ns t7w=26nst9d=20ns t12h=15ns都為最小值,t12d max=26ns由圖3可以看出:對進行一次讀操作所需的時間T=t6s+t7d+t7w+t9d所以T最小為56ns。本設計采用60MHz時鐘分頻出10MHz時鐘,在一個1OMHz時鐘周期(100ns)內(nèi)完成一次讀操作。用6 0 MH z時鐘同步一個計數(shù)器cscount[2:0],在第一個6 0MH z時鐘的上升沿(cs_count=3’b000時)置CS為低,并賦對應的地址給UART A;在第二個60MHz時鐘的上升沿(cs_cout=3’b001時)置UART IOR為低;在第四個60MHz時鐘的上升沿(cs_count=3’b011時)置CS、UART IOR為高。這樣UART IOR有效時間為兩個時鐘周期(33ns),且比CS延時一個時鐘周期(17ns),完全滿足圖3讀時序的要求。
由圖2可知,由空閑狀態(tài)State0到完成一次數(shù)據(jù)的讀取,共需要500ns的時間。這樣多通道工作時連續(xù)完成四個通道的讀數(shù)操作共需2μs,遠小于單個通道連續(xù)兩個中斷產(chǎn)生的時間間隔65μs;這樣有效解決了多通道工作時,當讀取數(shù)據(jù)的過程中其它通道中斷丟失的問題。如:當讀通道A數(shù)據(jù)的過程中,通道B產(chǎn)生中斷請求;則狀態(tài)機完成通道A數(shù)據(jù)讀取返回到空閑狀態(tài)State0,檢測到INTB為高,狀態(tài)機進入下一個狀態(tài)(State5)進行通道B的數(shù)據(jù)接收。

4 測試結(jié)果及分析
我們分別對兩種方案進行了測試,結(jié)果如下:表2為完全DSP接收和發(fā)送數(shù)據(jù)的性能測試;表3為接收串口數(shù)據(jù)的性能測試。

波特率發(fā)送周期數(shù)據(jù)長度測試結(jié)果
比較兩種方案的測試結(jié)果可以得出以下結(jié)論:
1單通道工作時:兩種方案的性能是一樣的。
2多通道同時工作時:由表2測試結(jié)果可以看出,每次發(fā)送的數(shù)據(jù)量過大、或發(fā)送周期較小時,由于DSP對串口芯片中斷請求的處理速度問題就會造成數(shù)據(jù)丟失。由表3測試結(jié)果可以看出,四通道工作時,發(fā)送數(shù)據(jù)長度為64字節(jié),通道發(fā)送周期最小可達10ms;如果發(fā)送數(shù)據(jù)長度減小,通道發(fā)送周期還可以更小。該設計性能遠遠好于方案改進前完全DSP接收和發(fā)送數(shù)據(jù)的性能;能滿足系統(tǒng)實際工作的需要。

5 結(jié)束語
基于接收數(shù)據(jù)的設計有兩個突出的優(yōu)點:1、極大提高了對串口中斷的響應速度,避免了多通道工作、完全基于DSP接收和發(fā)送數(shù)據(jù)時數(shù)據(jù)大量丟失的情況;2、完全可編程設置DSP中斷產(chǎn)生條件,解決了原來串口芯片只有1、4、8、14字節(jié)四個觸發(fā)深度的限制,可編程設置存儲空間范圍內(nèi)的任意字節(jié)的觸發(fā)深度,大大減少了DSP的中斷數(shù)量,提高了DSP的工作效率。另外程序具有較強的可移植性,當設計需要修改時,只需修改少量代碼,有效降低了設計周期。

合成孔徑雷達相關(guān)文章:合成孔徑雷達原理

上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉