基于DSP的嵌入式通用主動視覺系統
3.2 I2C總線實現
SAA7111不支持即插即用功能,需要通過I2C總線對其進行初始化。由于C6711沒有I2C接口模塊,需要采用通用I/O接口和軟件來模擬實現。C6711沒有專門的通用I/O接口,需要通過配置多通道緩沖串行口(McBsp)使其成為通用I/O接口。C6711具有2個McBs接口,可將其中的一個配置成通用IO接口。C6711的時鐘頻率比I2C總線的頻率要求高,在設計時需要注意I2C總線的時序要求,尤其是對數據保持時間的要求。
3.3 C6711與AL422接口實現
圖像采集設計中需要考慮的主要問題之一是圖像幀緩沖結構的設計。采用先進先出存儲器(FIFO)只占用單頁地址映射空間,可以節(jié)省大量地址空間。而且如果將幀存儲體映射到地址空間的高段,會使其對DSP的影響降低到最小,因此系統采用了基于FIFO的圖像幀緩沖結構。
AL422是專門用在視頻領域的大容量視頻幀存儲器,設計中需要考慮的主要問題是接口邏輯的實現。雖然AL422的讀寫與WCK、RCK同步,但是與普通的同步FIFO不同的是其必須保證WCK、RCK至少1 MHz的獨立時鐘,并且在進行不規(guī)律讀寫時只能由WEN或BEN進行控制。C6711采用100MHz的外部時鐘,需要通過降頻合成AL422的RCK。由于C6711輸出的外部時鐘頻率為100 MHz,而AL422B的最高RCK為50 MHz,因此采用將C6711輸出的外部時鐘二分頻作為AL422的RCK。AL422的REN、OEN可以采用DSK板上的DB_AREN、DB_OEN、DB_CE2信號通過組合邏輯實現。而RRSTN可采用DSK的一個通用I/O接口實現。DSK的外部時鐘頻率為IOOMHz,因此在設計時應該考慮邏輯器件本身的時延并采用同步設計方式。系統采用EPM7032實現上述FIFO接口邏輯,并將FIFO的輸出數據與C6711DSK擴展接口的數據總線相連,將CE2存儲空間分配給FIFO,從而最終實現了C6711與FIFO之間的接口。
3.4 F2812與C6711接口實現
由于TMS320C6711和TMS320F2812都支持McBsp接口并且相互兼容,所以系統采用McBsp接口實現兩者之間的通訊。McBSP是多通道緩沖串行口的簡稱,能夠同步發(fā)送和接收8/16/32位串行數據。接收和傳送均采用獨立的時鐘和幀信號,其來源、頻率、極性等均可由用戶進行編程。McBSP包括數據流路徑和控制路徑,通過6根信號線連接到外部設備。數據信息通過傳輸引腳DX發(fā)送,接收引腳DR接收。時鐘和幀同步控制信息由發(fā)送時鐘、接收時鐘、發(fā)送幀同步和接收幀同步引腳來產生。McBSP提供了雙倍緩沖傳送和三倍緩沖的接收。接收數據到達引腳DR后,移入接收移位寄存器RSR1,當整個字信息被接收之后,又被復制到接收緩沖寄存器RBR,最終復制到數據接收寄存器DRR,由CPU讀取。而發(fā)送數據由CPU寫入發(fā)送寄存器DXR,再復制到發(fā)送移位寄存器XSR。在幀同步信息發(fā)送后,發(fā)送器開始將XSR的內容移位到DX引腳。
F2812具有一個McBSP模塊,而C6711自帶了兩個McBSP模塊,二者之間完全兼容的。由于第一組McBSP的信號被配置成為通用I/O接口用于I2C總線的擴展,故只能使用C6711的第二組McBSP實現與F2812之間的通訊。在硬件上采用雙機接收/發(fā)送端互連,即C6711的數據發(fā)送、時鐘發(fā)送、幀發(fā)送同步信號管腳連接到F2812對應的接收管腳;反之亦然。
通過對相關寄存器的配置來實現數據的接收和發(fā)送操作,具體流程如下:
1)設置相關引腳為MeBSP引腳。
2)復位接收器、發(fā)送器及采樣率發(fā)生器。
3)禁止數字回送、時鐘停止、多通道模式。
4)接收和發(fā)送幀:單相,字長32位,每幀2個碼字,使能幀同步忽略,無壓縮擴展,1位數據延遲,右對齊高位填0,產生中斷方式為檢測到幀同步脈沖,幀同步脈沖高有效,時鐘信號為上升沿觸發(fā)。
5)發(fā)送時鐘信號和幀同步信號來自內部采樣率發(fā)生器,接收時鐘信號和幀同步信號來自外部相應的接收引腳。時鐘頻率為37.5MHz,幀頻率為1.25M,幀寬度為1個時鐘脈沖寬度。采樣率發(fā)生器時鐘來源于內部CPU。
6)使能接收中斷和發(fā)送中斷,使能接收器、發(fā)送器及采樣率發(fā)生器。
在相應的中斷子程序中,通過讀取和寫入DXR1、DXR2、DRR1、DRR2寄存器實現F2812和C6711之間數據的讀寫。
評論