王 勇,孫向文,楊 雷
(河南科技大學(xué)a.電氣工程學(xué)院;b.信息工程學(xué)院,河南洛陽471023)
某圖像信息處理板(簡稱圖像板),主要用于圖像數(shù)據(jù)的轉(zhuǎn)換與輸出,并根據(jù)圖像格式提取目標(biāo)的個數(shù)、大小、坐標(biāo)、邊界、運(yùn)行軌跡等信息,進(jìn)而將這些信息上傳給PC機(jī)進(jìn)行記錄和分析。圖像板以DSP為核心進(jìn)行設(shè)計,每隔1 ms處理一次信息并生成大小為200個字(16 bit)的一組數(shù)據(jù)。要將上述處理結(jié)果上傳給PC機(jī),并考慮數(shù)據(jù)間隙,通信比特率必須大于3.2 Mbit/s。
PC機(jī)常用的高速通信接口有網(wǎng)口和USB口,采用這兩種方式與DSP通信時,硬件上需要額外的接口電路,軟件上需要編寫接口電路的固件程序、驅(qū)動程序,上位PC機(jī)識別端口時需要調(diào)用相應(yīng)的Windows API函數(shù),對開發(fā)人員技術(shù)能力要求較高,開發(fā)周期相對較長[1]。而高性能的雙口RAM無論是在并行處理網(wǎng)絡(luò)中的數(shù)據(jù)共享,還是在流水線方式的高速數(shù)據(jù)傳輸方面,均能發(fā)揮重要作用。以雙口RAM為核心設(shè)計接口電路,并與高速數(shù)據(jù)采集卡配合,構(gòu)成高速數(shù)據(jù)傳輸介質(zhì),可以實現(xiàn)DSP圖像處理系統(tǒng)與上位PC機(jī)之間的高速通信,且方法通用易行,可靠性高[2-3]。
基于雙口RAM的DSP與上位PC機(jī)高速通信系統(tǒng)由4部分夠成:DSP系統(tǒng)、接口電路、高速PCI數(shù)據(jù)采集卡以及上位PC機(jī),具體結(jié)構(gòu)如圖1所示。接口電路以雙口RAM、高速單片機(jī)為核心進(jìn)行設(shè)計,用于識別和控制通信起始、數(shù)據(jù)暫存和電平轉(zhuǎn)換;高速數(shù)據(jù)采集卡選用通用型PCI高速數(shù)字量卡,用于將接收到的并行數(shù)據(jù)轉(zhuǎn)換成通用PCI通信方式,便于上位PC機(jī)軟件接收。其中,為縮短線長,保證通信可靠性,可以將DSP系統(tǒng)與接口電路放在同一塊電路板上。
圖1 系統(tǒng)組成框圖
接口電路的功能主要有以下3點:1)由于DSP為+3.3 V供電,所選數(shù)據(jù)采集卡額定的數(shù)字高電平為+5 V,因此接口電路需要實現(xiàn)+3.3 V到+5 V的電平轉(zhuǎn)換。2)圖像板每次處理完數(shù)據(jù)后以中斷方式通知上位機(jī)開始上傳數(shù)據(jù),因此接口電路需要準(zhǔn)確識別圖像板發(fā)出的中斷信號,以便控制通信的起始。3)上位PC機(jī)軟件運(yùn)行于操作系統(tǒng)之上,其語句延時精度不高,通過編程讓上位PC機(jī)軟件直接控制地址線、數(shù)據(jù)線端口讀取DSP存儲單元的方式,效率低,涉及方法復(fù)雜。而接口電路可以將圖像板上傳的數(shù)據(jù)進(jìn)行整體暫存,然后上位PC機(jī)通過操控PCI數(shù)據(jù)采集卡,以固定的方式高效讀取數(shù)據(jù)。
接口電路的硬件構(gòu)成如圖1所示。雙口RAM用于實現(xiàn)DSP與后續(xù)高速單片機(jī)的數(shù)據(jù)共享,設(shè)計中選用IDT公司的IDT70T633芯片,其左口與DSP連接,右口與單片機(jī)連接。高速單片機(jī)用于控制雙口RAM識別通信起始、讀取數(shù)據(jù),并以并行方式轉(zhuǎn)發(fā)給后續(xù)的PCI數(shù)據(jù)采集卡,設(shè)計中選用Silicon Laboratories公司的C8051F120,該單片機(jī)執(zhí)行速度最高可達(dá)100 MInstruction/s(兆指令/秒),有64個通用I/O口,能夠很好滿足設(shè)計需要,其端口分配如表1所示。電平轉(zhuǎn)換芯片用于將+3.3 V的DSP數(shù)據(jù)轉(zhuǎn)換成+5 V的標(biāo)準(zhǔn)TTL電平,設(shè)計中選用16位總線驅(qū)動器SN74ALVC164245。
表1 設(shè)計中C8051F120單片機(jī)的端口分配
接口電路設(shè)計的核心在于對雙口RAM芯片IDT70T633的有效控制。雙口RAM除了數(shù)據(jù)存儲功能外,還提供2套完全獨立的端口,每套端口分別有自己的控制線、地址線和數(shù)據(jù)線,允許雙端口同時讀寫數(shù)據(jù)。IDT70T633是一款高速512 k×18位的雙口RAM,存儲空間同樣為左、右兩套端口所共用,帶片內(nèi)總線仲裁電路,適用于兩控制器之間大量數(shù)據(jù)的快速雙向傳遞。當(dāng)IDT70T633的兩套端口同時對同一存儲單元進(jìn)行讀寫時,會導(dǎo)致數(shù)據(jù)破壞或丟失。為了防止這種情況發(fā)生,IDT70T633有2種仲裁方式。1)使用BUSY控制線:當(dāng)左右端口對同一存儲單元操作時,先發(fā)出請求信號的一端對應(yīng)的BUSY線為高,允許讀寫,另一端口的BUSY線為低,處于等待狀態(tài),禁止讀寫。插入等待狀態(tài)會降低數(shù)據(jù)傳輸速率,對于高速通信通常是不可接受的。2)中斷方式:IDT70T633左右兩端各有一條中斷信號線,7FFFEH和7FFFFH存儲單元為中斷響應(yīng)單元。當(dāng)左方對7FFFFH存儲單元寫入數(shù)據(jù)時,右方產(chǎn)生中斷信號(INTR置低);右方從7FFFFH存儲單元讀取數(shù)據(jù)時,右方的中斷信號被撤除(INTR置高)。當(dāng)右方對7FFFEH存儲單元寫入數(shù)據(jù)時,左方產(chǎn)生中斷信號(INTL置低);左方從7FFFEH存儲單元讀取數(shù)據(jù)時,左方的中斷信號被撤除(INTL置高)??梢?,可以通過中斷響應(yīng)單元的讀寫操作來實現(xiàn)雙口RAM兩側(cè)電路單元的實時高速通信[4-5]。
設(shè)計中,采用雙口RAM的中斷仲裁方式,不僅能有效避免左端DSP與右端單片機(jī)對同一RAM地址的爭用問題,而且可以實現(xiàn)二者之間的高速通信[6]。具體通信過程如下:DSP處理完圖像信息后,將生成的數(shù)據(jù)從左口存入雙口RAM,并將最后一個字節(jié)數(shù)據(jù)存入7FFFFH存儲單元,從而在雙口RAM的右口產(chǎn)生中斷信號,通知單片機(jī)已寫入數(shù)據(jù);高速單片機(jī)檢測到中斷信號后,啟動中斷程序,從約定地址讀取數(shù)據(jù),經(jīng)電平變換后上傳給上位PC機(jī),讀取到7FFFFH存儲單元后,清除右側(cè)中斷信號,此次通信結(jié)束。因為數(shù)據(jù)的寫入與讀出均采用并行方式,通信速度完全由DSP和高速單片機(jī)的指令執(zhí)行速度決定,具體軟件流程如圖2所示。
高速PCI數(shù)據(jù)采集卡選用國產(chǎn)阿爾泰PCI2510高速數(shù)字量輸入輸出卡。PCI總線是一種連接電子計算機(jī)主板和外部設(shè)備的總線標(biāo)準(zhǔn),帶寬為132~264 Mbit/s,具有兼容性好、自動配置、擴(kuò)展性好、中斷共享等特點。阿爾泰PCI2510卡可直接插在IBM-PC/AT或與之兼容的計算機(jī)內(nèi)的任一PCI插槽中,具有32個與TTL兼容的高速通道和16 byte的板載FIFO存儲器,DMA傳輸模式,最大傳輸速率可達(dá)120 Mbit/s。該卡可通過普通模式或握手模式接收外部數(shù)據(jù)輸入,設(shè)計中選用普通模式。在該模式下,PCI2510能隨啟動信號(start signal)開始從外部設(shè)備傳輸數(shù)據(jù)到板卡,也能隨停止信號(stop signal)停止數(shù)據(jù)的輸入。當(dāng)啟動信號到來時,PCI2510將在下一時鐘周期(見圖3中A點處)開始接收外部數(shù)據(jù),當(dāng)停止信號到來時,PCI2510將在下一時鐘周期(見圖3中B點處)停止接收外部數(shù)據(jù),控制時序如圖3所示。上位PC機(jī)操作軟件界面采用NI公司的Labwindows/CVI開發(fā)平臺進(jìn)行設(shè)計,具體程序代碼這里不再贅述。
圖2 接口電路程序流程
圖3 PCI2510卡控制時序(截圖)
基于雙口RAM,配合單片機(jī)、電平轉(zhuǎn)換驅(qū)動器以及PCI數(shù)據(jù)采集卡,設(shè)計的DSP圖像處理系統(tǒng)與上位PC機(jī)高速通信電路,已經(jīng)在某光電信息處理平臺和相應(yīng)的測試設(shè)備中得到應(yīng)用,完全能夠達(dá)到每1 ms傳輸200個字的通信速度要求,并且運(yùn)行穩(wěn)定。這種設(shè)計方案具有通用性,可以為單片機(jī)、ARM或FPGA等嵌入式系統(tǒng)與上位PC機(jī)之間的高速數(shù)據(jù)傳輸提供借鑒。
[1]冷佳鵬,劉文怡.基于USB總線的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2012,38(12):11-16.
[2] LIBo,LIUQingjian,QIAO Zhifeng,et al.An interface design of communication between PC104 and DSP based on dual-port RAM[J].Applied Mechanics and Materials,2012,141(1):198-202.
[3]章筱靜,陳明,瞿赟.雙口RAM在航空發(fā)動機(jī)參數(shù)采集系統(tǒng)中的應(yīng)用[J].計算機(jī)測量與控制,2007,15(9):1250-1252.
[4] DAVE B .Dual-port RAM delivers18 Mbits And 72-bitwide ports[J].Electronic Design,2003,51(19):34.
[5] ZHOU Rigui,HU Jingchun,YE Shuisheng,etal.Application of fixedpoint DSPand 16-bit parallel output A/D and dual-port RAM[J].International Symposium on Test and Measurement,2003(1):573-576.
[6] CHEN Zhanlun,OUYANG Sen,SHIYili.Design of a power qualitymonitoring device based on dual-CPU[C]//Proc.2012 International Conference on Control Engineering and Communication Technology,2012.[S.l.]:IEEE Press,2012:192-196.