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