CPLD在DSP系統(tǒng)中的應(yīng)用設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要: 以Altera公司MAX7000系列為代表,介紹了CPLD在DSP系統(tǒng)中的應(yīng)用實(shí)例。該方案具有一定的普遍適用性。
關(guān)鍵詞: RESET BOOT HPI CPLD的延時(shí) 時(shí)序
DSP的速度較快,要求譯碼的速度也必須較快。利用小規(guī)模邏輯器件譯碼的方式已不能滿足DSP系統(tǒng)的要求。同時(shí),DSP系統(tǒng)中經(jīng)常需要外部快速部件的配合,這些部件往往是專(zhuān)門(mén)的電路,可由可編程器件實(shí)現(xiàn)。 CPLD的時(shí)序嚴(yán)格、速度較快、可編程性好,非常適合于實(shí)現(xiàn)譯碼和專(zhuān)門(mén)電路。本文以MAX7000系列為例,具體介紹其在 以 TI公司的 TMS320C6202 為平臺(tái)的網(wǎng)絡(luò)攝像機(jī)系統(tǒng)中的應(yīng)用。
1 CPLD在DSP系統(tǒng)中的功能介紹
1.1 DSP系統(tǒng)簡(jiǎn)介
本文所論述的編碼器系統(tǒng)是基于DSP的MPEG-4壓縮編碼器的,主要由前端視頻采集、數(shù)據(jù)預(yù)處理以及MPEG-4視頻壓縮編碼三部分組成。基于DSP的MPEG-4編解碼器由于其所選用的DSP運(yùn)算能力強(qiáng)、編程靈活,且實(shí)現(xiàn)不同的圖像編碼算法時(shí)只需對(duì)DSP內(nèi)部的程序進(jìn)行改寫(xiě)便可實(shí)現(xiàn)諸如MPEG、H.263等多種圖像編碼,因而具有良好的應(yīng)用情景。CPLD芯片對(duì)整個(gè)編碼器起著邏輯控制作用,系統(tǒng)結(jié)構(gòu)如圖1所示。
1.2 CPLD在系統(tǒng)中的功能要求
1.2.1產(chǎn)生復(fù)位信號(hào)
系統(tǒng)上電時(shí),CPLD產(chǎn)生復(fù)位信號(hào),使整個(gè)系統(tǒng)中的FPGA和DSP模塊復(fù)位,進(jìn)入初始狀態(tài);系統(tǒng)上電后,數(shù)據(jù)采集模塊自動(dòng)啟動(dòng)。
系統(tǒng)內(nèi)共使用三種電源:5V、3.3V、1.8V。其中,5V電源由供電電源接入,3.3V、1.8V電源由TPS56300(TI產(chǎn)品)提供。采用TPS3307(TI產(chǎn)品)為系統(tǒng)提供電源管理,該芯片可同時(shí)管理三種電源。當(dāng)監(jiān)測(cè)到電源電壓低于一定值時(shí),產(chǎn)生復(fù)位信號(hào)。TPS3307在其自身電源電壓大于1V的情況下即可以輸出復(fù)位信號(hào)。
當(dāng)系統(tǒng)出現(xiàn)錯(cuò)誤時(shí),可以采用手工方式復(fù)位。
復(fù)位信號(hào)產(chǎn)生原理圖如圖2所示。其中,RST#為整個(gè)系統(tǒng)的復(fù)位信號(hào),由MAX7000輸出。PBSW_RST#為手動(dòng)復(fù)位信號(hào),由按鍵接入MAX7000,經(jīng)MAX7000去抖動(dòng)后輸出給TPS3307。SVS_RST#為電源管理芯片TPS3307產(chǎn)生的復(fù)位信號(hào)(包括手動(dòng)復(fù)位和電源監(jiān)控功能)。
1.2.2 BOOT模式的實(shí)現(xiàn)
系統(tǒng)復(fù)位后,DSP需要進(jìn)行BOOT自舉。在復(fù)位信號(hào)為低期間,BOOTMODE[4:0]管腳上的設(shè)置值被鎖存,決定芯片的存儲(chǔ)器映射方式以及自舉模式。但TMS320C6202沒(méi)有專(zhuān)門(mén)的管腳作為BOOTMODE[4:0]輸入管腳,而是將擴(kuò)展總線的XD[4:0]映射為BOOTMODE[4:0],利用上拉/下拉電阻在復(fù)位時(shí)進(jìn)行芯片啟動(dòng)模式設(shè)置??偩€上的其它位也在復(fù)位期間被鎖定,決定系統(tǒng)相應(yīng)的設(shè)定值。而擴(kuò)展總線XD在HPI口讀寫(xiě)時(shí)要用到,所以使用MAX7000進(jìn)行隔離。系統(tǒng)處在復(fù)位階段,則通過(guò)MAX7000使得DSP的相應(yīng)管腳的值等于設(shè)定值,復(fù)位結(jié)束后,MAX7000相應(yīng)管腳為高阻態(tài),使得XD可以作為正常的總線使用。
DSP自舉有特定的時(shí)間要求。在復(fù)位結(jié)束后,XD的配置管腳必須保持一段時(shí)間,TMS320C6202要求時(shí)間為5個(gè)時(shí)鐘周期,例如在200MHz時(shí)鐘情況下必須保持25ns。
1.2.3 HPI口接口邏輯實(shí)現(xiàn)
MPEG-4壓縮編碼器壓縮后的數(shù)據(jù),通過(guò)網(wǎng)絡(luò)傳輸控制模塊傳輸?shù)骄W(wǎng)絡(luò)上去,從而實(shí)現(xiàn)網(wǎng)絡(luò)實(shí)時(shí)圖像傳輸。而DSP與網(wǎng)絡(luò)傳輸模塊(MCF5272)通過(guò)HPI口連接。其接口邏輯由CPLD完成。硬件連線圖如圖3所示。
根據(jù)系統(tǒng)的邏輯要求以及實(shí)際的仿真結(jié)果,CPLD選用EPM7128SLC84。該芯片共有2500門(mén),128個(gè)宏單元,最多100個(gè)用戶自定義管腳。
2 CPLD邏輯控制的具體實(shí)現(xiàn)
2.1 復(fù)位信號(hào)的實(shí)現(xiàn)
復(fù)位信號(hào)邏輯產(chǎn)生較簡(jiǎn)單,需要處理的是按鍵的去抖動(dòng)。由于按鍵是機(jī)械觸點(diǎn),當(dāng)機(jī)械觸點(diǎn)斷開(kāi)、閉合時(shí)會(huì)有抖動(dòng),為使每一次按鍵只作一次響應(yīng),就必須考慮去除抖動(dòng)。在通過(guò)按鍵獲得復(fù)位信號(hào)為低的信息時(shí),不是立即認(rèn)定按鍵已被按下,而是延時(shí)一段時(shí)間后再次檢測(cè)復(fù)位信號(hào)。如果仍為低,說(shuō)明按鍵的確按下了,這實(shí)際上是避開(kāi)了按鍵按下時(shí)的抖動(dòng)時(shí)間。同樣,在檢測(cè)到按鍵釋放后,再延時(shí)幾個(gè)毫秒,消除后沿的抖動(dòng),然后再對(duì)鍵值處理。由于抖動(dòng)現(xiàn)象主要出現(xiàn)在按鍵按下后,采用延時(shí)方法可有效地減少按鍵的抖動(dòng)現(xiàn)象。
2.2 BOOT模式的實(shí)現(xiàn)
為了滿足在復(fù)位有效期間對(duì)相應(yīng)管腳進(jìn)行配置,在復(fù)位無(wú)效時(shí),使管腳進(jìn)入高阻態(tài)。以其中一個(gè)管腳為例,采用Verilog語(yǔ)言,用如下語(yǔ)句實(shí)現(xiàn)該功能:
assign hd0=(tp4)?rst_hd0:1′bz;
//復(fù)位有效期間,tp4為1,hd=rst_hdo,即為設(shè)定值;復(fù)位無(wú)效時(shí),tp4=0,hd 為高阻態(tài)。
因?yàn)镈SP自舉有特定的時(shí)間要求,在復(fù)位信號(hào)結(jié)束后,配置管腳的值必須至少保持25ns。通過(guò)對(duì)復(fù)位信號(hào)作一定的延時(shí),可以滿足要求。采用CPLD將信號(hào)作一定的延時(shí),并不能簡(jiǎn)單地在信號(hào)后串接一些非門(mén)或其它門(mén)電路,因?yàn)殚_(kāi)發(fā)軟件在綜合設(shè)計(jì)時(shí)會(huì)將這些門(mén)作為冗余邏輯處理,達(dá)不到延時(shí)的效果。所以采用高頻時(shí)鐘驅(qū)動(dòng)一移位寄存器,對(duì)移位寄存器進(jìn)行正確的設(shè)置后,輸出即為延時(shí)后的數(shù)據(jù)。語(yǔ)句如下:
always@(posedge eclkout2) //采用dsp的clkout=100MHz 二分頻后作延時(shí)
begin
if(svs_rst_) //svs_rst_低電平,count始終置1010
begin
count=4'b1010;
end
else if(count==4'b0000) //0000則保持
begin
count=4'b0000;
end //svs_rst_高電平,count
開(kāi)始計(jì)數(shù)
else
begin
count=count+4'b0001; //記六次至0000
end
end
assign tp4=count[3];
仿真效果如圖4所示。由仿真波形可見(jiàn),CPLD的信號(hào)輸出完全符合DSP BOOT 的兩個(gè)要求。
2.3 HPI口接口邏輯的實(shí)現(xiàn)
圖像壓縮編碼器通過(guò)DSP的 HPI口與網(wǎng)絡(luò)模塊連接,實(shí)現(xiàn)圖像的網(wǎng)絡(luò)傳輸。TMS320C6202的HPI口是指其擴(kuò)展總線的主機(jī)口接口部分。經(jīng)過(guò)編碼器編碼后的MPEG-4圖像數(shù)據(jù)以幀為單位存放在DSP內(nèi)部存儲(chǔ)器中,外部主機(jī)通過(guò)HPI口讀取。現(xiàn)以MCF5272微處理器與HPI口通信為例進(jìn)行說(shuō)明。
MCF5272將10/100MB以太網(wǎng)控制器和一個(gè)USB模塊等通信外圍設(shè)備結(jié)合起來(lái), 是一款高集成的ColdFire微處理器。詳見(jiàn)參考文獻(xiàn)[4]。
MCF5272與TMS320C6202連接采用異步從屬工作方式,MCF5272作為上行機(jī),TMS320C6202作為從屬機(jī)。由MCF5272高位地址線模擬XCNL、XR_W信號(hào),TMS320C6202的多功能串行口3工作在GPIO模式下模擬信號(hào),為MCF5272提供主機(jī)口中斷。本系統(tǒng)由CPLD——MAX7000編程實(shí)現(xiàn)兩者硬件接口。仿真后的時(shí)序如圖5所示,實(shí)驗(yàn)證明可以滿足雙方時(shí)序要求,實(shí)現(xiàn)數(shù)據(jù)傳輸。
以上所討論的邏輯并不復(fù)雜,采用74系列在一定程度上說(shuō)也可以完成。但是,采用CPLD具有以下優(yōu)勢(shì):體系結(jié)構(gòu)和邏輯單元靈活、集成度高、適用范圍廣,因而采用CPLD的方案。
在開(kāi)發(fā)階段,通過(guò)硬件實(shí)現(xiàn)的控制信號(hào)往往不能確定,需要試驗(yàn)驗(yàn)證。而CPLD因其具有靈活性,逐漸成為DSP進(jìn)行信號(hào)處理不可或缺的協(xié)處理器。將相關(guān)控制信號(hào)接入CPLD,只需通過(guò)簡(jiǎn)單的編程即可實(shí)現(xiàn)各種需要的邏輯,避免了硬件上的改動(dòng),使硬件邏輯控制更加方便靈活,對(duì)類(lèi)似設(shè)計(jì)具有普遍意義。文中討論的防抖動(dòng)以及CPLD延時(shí)程序?qū)τ陬?lèi)似設(shè)計(jì)也有一定的借鑒意義。
本文介紹的CPLD在基于DSP的MPEG-4編碼壓縮模塊的系統(tǒng)中的應(yīng)用實(shí)例,已通過(guò)下載驗(yàn)證。應(yīng)用在工程實(shí)踐中,結(jié)果表明該設(shè)計(jì)是方便靈活且正確有效的。