基于FPGA的水聲信號(hào)采樣存儲(chǔ)系統(tǒng)設(shè)計(jì)
3.1.2 主端口IP 核
因?yàn)镾DRAM 主控IP 核在NiosII 軟核CPU 總線控制下作為從端口,所以不能主動(dòng)發(fā)起 讀寫操作,因此必須新建第二條AVALON 總線,設(shè)計(jì)讀寫主端口IP 核,才能實(shí)現(xiàn)讀寫外接 SDRAM 芯片的功能。主端口IP 核的時(shí)序操作,是對(duì)主控IP 核的時(shí)序轉(zhuǎn)接,面向SDRAM 控制器進(jìn)行控制。根據(jù)讀寫使能信號(hào)不同,進(jìn)行不同時(shí)序傳送。
3.2 軟件程序設(shè)計(jì)
NiosII CPU 作為軟核,可方便進(jìn)行模塊化操作,具有可移植,可配置,易整合的特點(diǎn)。 在本設(shè)計(jì)當(dāng)中,軟件設(shè)計(jì)主要實(shí)現(xiàn)以下五種主要功能:?jiǎn)吸c(diǎn)寫SDRAM,單點(diǎn)讀SDRAM, 數(shù)據(jù)飛讀,連續(xù)寫SDRAM,連續(xù)讀SDRAM 的功能。在程序當(dāng)中留有接口,方便其他功能 整合,符合模塊化設(shè)計(jì)的要求。
首先,完成功能的初始化,主要是設(shè)置選擇操作模式與存儲(chǔ) AD 數(shù)據(jù)的時(shí)鐘分頻系數(shù)。 作為SDRAM 的讀操作必須滿足寫滿之后,方可進(jìn)行,所以初始化主控IP 核為寫SDRAM 操作。設(shè)置分頻系數(shù)可以按照如下公式計(jì)算:
其次,通過對(duì)于串口進(jìn)行協(xié)議解析,分別實(shí)現(xiàn)五部分預(yù)設(shè)功能。主程序操作流程如圖4所示。
實(shí)現(xiàn)的五部分功能依次為:
(1) 單點(diǎn)寫SDRAM 操作:CPU 給出地址,數(shù)據(jù),以及寫操作選擇信號(hào)。
(2) 連續(xù)寫SDRAM 操作:CPU 只是給出寫操作選擇信號(hào),由主控IP 核將AD 數(shù)據(jù)寫入至SDRAM 環(huán)形存儲(chǔ)區(qū)域內(nèi)。
(3) 數(shù)據(jù)飛讀操作:只需要讀取飛讀數(shù)據(jù)寄存器,可以將當(dāng)前狀態(tài)AD 輸入值送回至CPU,偵測(cè)當(dāng)前狀態(tài)。
(4) 單點(diǎn)讀SDRAM 操作:CPU 送出讀SDRAM 地址,然后選擇讀操作,設(shè)置控制寄存器為0x00000001,啟動(dòng)讀操作。最后將讀回?cái)?shù)據(jù)通過串口實(shí)時(shí)回傳。
(5) 連續(xù)讀SDRAM 操作:是將基本讀操作進(jìn)行循環(huán)執(zhí)行。設(shè)置串口回傳緩沖區(qū)為80 字節(jié),連續(xù)讀SDRAM 數(shù)據(jù)并連續(xù)填寫緩沖區(qū),一旦填滿,則啟動(dòng)串口發(fā)送。同時(shí),讀地址在每次讀操作結(jié)束后自動(dòng)加一,當(dāng)操作次數(shù)達(dá)到環(huán)形空間最大存儲(chǔ)數(shù)量時(shí),停止連續(xù)讀操作。
4 結(jié)束語(yǔ)
本設(shè)計(jì)作為水下無(wú)線傳感器網(wǎng)絡(luò)(UW-ASN)節(jié)點(diǎn)的設(shè)計(jì)組成部分,具有結(jié)構(gòu)清楚,功 能完善,整合性強(qiáng),性能可靠的特點(diǎn)。設(shè)計(jì)整體架構(gòu)的模塊化操作以及可編程性,使得整個(gè) 設(shè)計(jì)開發(fā)的具有靈活性與低風(fēng)險(xiǎn)性。經(jīng)項(xiàng)目試驗(yàn)驗(yàn)證,該數(shù)據(jù)采集與存儲(chǔ)設(shè)計(jì)滿足傳感器節(jié) 點(diǎn)的功能要求,為水聲通信試驗(yàn)順利進(jìn)行以及水下無(wú)線傳感器網(wǎng)絡(luò)的功能完善提供可靠保證。
本文創(chuàng)新點(diǎn):在系統(tǒng)功能設(shè)計(jì)當(dāng)中,充分考慮了模塊的可重用性和可移植性,通過IP核的設(shè)計(jì)實(shí)現(xiàn)底層驅(qū)動(dòng),提高系統(tǒng)集成度,充分發(fā)揮了SOPC技術(shù)的優(yōu)勢(shì)。
評(píng)論