在遠程測控系統中,嵌入式系統由于其穩定性和實時性優于傳統平臺而得到迅速發展。本文提出了一種以DSP芯片和VxWorks為操作系統的新型嵌入式系統設計方法。 1 測試系統工作原理 測試系統的主要任務是采用DSP芯片處理通過攝像頭拍攝并經過A/D轉換的圖像。整個系統由視頻解碼器、DSP和PCI總線專用芯片組成。系統通過PCI總線同通信平臺交換數據,同時通過網絡進行檢測控制。 2 關鍵設計及器件選擇 本系統設計的關鍵是視頻處理卡的設計,一般的視頻檢測卡功能有限,不能滿足本項目的需求,為此,筆者自行設計了一塊視頻檢測卡。 2.1 TMS320C32的功能特點 本測試系統中的DSP芯片選用T I公司的T M S 3 2 0 C 3 x系列產品,該器件的工作頻率為40MHz;采用哈佛總線結構。并且擁有獨特的指令系統和硬件乘加運算;外帶256k×32Bit的 FLASH、2k×8Bit的NVRAM和256k×32Bit的SRAM。該芯片是在TMS320C30的基礎上簡化而來的, 含有TMS320C30的CPU內核。 TMS320C32的主要功能如下: ●帶有程序引導功能;●串行接口傳輸和存儲器均可支持8、16、32位的數據; ●可產生邊沿中斷和電平中斷;●可由用戶編程設定中斷向量表地址; ● 具有空等待和低功耗兩種電源管理方式;●具有兩個DMA通道; ●功能強大的外部存儲器接口既可以滿足視頻解碼接口8位數據的要求,又可以實現PCI接口32位數據的高速數據傳輸; ●靈活的程序加載可實現在系統編程; 一般情況下,S5933和DSP之間的硬件連接就是利用DSP的讀寫信號R/ W、地址選通控制信號IOSTRB、外部設備就緒信號RDY和部分地址信號以及S5933的FIFO狀態信號WRFULL來進行簡單的時序和邏輯組合,從 而生成對S5933外加總線接口的讀寫控制信號。 2.2 其它器件的選擇 本系統中的CPLD芯片選用ALTERA公司的EPM9320RC208。兩組幀存儲器A和B采用CYPRESS公司生產的兩塊CY7C1049芯片,該 芯片的容量為512k×8bit,存取時間不超過15ns,能滿足圖像實時采集要求。通過CPLD內部的一個乒乓開關控制模塊可自動完成幀間 讀寫兩個通道接口的切換。而DSP和SAA7113之間的所有控制信號接口邏輯和時序轉換都由CPLD來完成,并可編程修改,因而提高了系統的使用靈活性 和可靠性。 SAA7113的作用是實現模擬圖像的A/D轉換。DSP與SAA7113之間的硬件接口的控制邏輯包括兩個子模塊:幀圖像寫入控制器和乒乓開關,這兩種功能可由一塊CPLD來完成。 在視頻卡設計中,電源模塊的設計也非常關鍵,它直接影響著視頻卡的最后實現和穩定運行。 本監控系統采用TI公司的TPS3307-33D來作為電源檢測IC。該器件的Reset有效電源復位電壓值定義為VDD=1.1V。TPS3307-33D可同時監視兩種獨立電壓,還可控制另外一種電壓,這種電壓可以獨立調整并在內部與復位邏輯電路相連。 3 通信平臺的嵌入式系統設計 本設計的軟件系統包括底層軟件和系統軟件兩部分,其中底層軟件主要是DSP圖像處理算法以及啟動等運行程序,這些程序可在CCS環境下由C語言編寫并進行匯編優化,CCS是TI公司發布的DSP軟件運行環境; 在系統軟件方面,基于PCI總線的圖像處理系統所面臨的難點頗多,其中難度最大的是PCI驅動問題。 3.1 系統軟件的設計 系統軟件可以選用以VxWorks為操作系統的嵌入式設計方法。 VxWorks操作系統的集成環境叫Tornado。Tor-nado集成環境是一個高效明晰的圖形化實時應用開發平臺,它包括一套完整的、面向嵌入式系統的開發和調測工具。VxWorks的優點如下: (1)具有較好的可裁減性; (2)支持應用程序的動態鏈接和動態下載; (3)具有較好的兼容性; (4)具有很高的可靠性和穩定性; (5)具有很好的實時性; VxWorks的多任務機制對任務的控制采用優先級搶占和輪轉調度機制,從而充分保證了實時性,并可用同樣的硬件配置滿足更強的實時性要求,以便為應用開發留下更大的余地。 PCI設備有三種物理存儲空間:配置空間、存儲器空間和I/O空間。其中配置空間是長度為256字節的一段連續空間,空間定義如圖4所示,在配置空間中, 只讀空間包括設備標識、供應商代碼、修改版本、分類代碼以及頭標類型。其中供應商代碼用來標識設備供應商的代碼;設備標識用來標識某一特殊的設備;修改版 本標識設備的版本號;分類代碼用來標識設備的種類;而頭標類型用來標識頭類型以及是否為多功能設備。除供應商代碼之外,其他字段的值可由供應商分配。 基地址寄存器最重要的功能是分配PCI設備的系統地址空間。在基地址寄存器中,bit0(最低位)可用來標識到底是存儲器空間還是I/O地址空間;刂 寄存器映射到存儲器空間時,bit0為“0”,而當其映射到I/O地址空間時,bit0為“1”。 在驅動PCI設備時,首先是PCI設備的查找。嵌入式操作系統一般都提供有相應的API函數查找。而在VxWorks操作系統中,通過函數 pciFindDevice?PCI_VENDOR_ID?PCI_DEVICE?index? &pciBus? &pciDevice,&pciFunc_可以找到供應商代碼為PCI_VENDOR_ID、設備標識為PCI_DEVICE的第n(index+1)個 設備,并且返回總線號、設備號以及功能號,然后分別保存于&pciBus、&pciDevice、&pci-Func中。 其次是PCI設備的配置。通過操作系統提供的API函數可以訪問PCI設備的配置空間,從而完成PCI設備基址寄存器的配置、中斷配置、以及ROM基地址 寄存器的配置,最終得到PCI存儲器空間和I/O地址空間的映射以及設備中斷號等。在VxWorks操作系統中,訪問PCI設備配置空間的API函數有: pciConfigOutLong和pciConfigInLong等,它們可分別完成對PCI設備配置空間的讀寫操作。 然后是根據PCI設備的配置參數來編寫不同設備的初始化程序、中斷服務程序以及對PCI設備存儲空間的訪問程序。 3.2 遠程控制與通信鏈路 由于基于串行口的PPP協通信方式現已被各種ISP所接受。而且VxWorks系統也支持PPP協議,因此,在VxWorks下通過Modem建立與ISP的物理連接,然后再完成設備的PPP數據鏈路設置,就可以通過Internet實現遠程控制。 |