|
包含硬件PCB硬件設(shè)計(jì)和FPGA的Verilog代碼的編寫,下圖為主要功能框圖。FPGA作為處理單元,實(shí)現(xiàn)了包括電流和電壓的采集、千兆以太網(wǎng)通訊、SD卡本地存儲(chǔ)和串口通訊等。已經(jīng)打PCB板實(shí)際驗(yàn)證和Verilog代碼在硬件上的實(shí)際測(cè)試,測(cè)試部分包含:千兆網(wǎng)通訊收發(fā)測(cè)試、AD采集的數(shù)據(jù)驗(yàn)證、SD卡存儲(chǔ)驗(yàn)證、RTC實(shí)時(shí)時(shí)鐘讀取和RTC的RAM突發(fā)讀取等。
PCB設(shè)計(jì)采用的是AD軟件,Verilog程序通過(guò)quartus II軟件編寫。現(xiàn)由硬件和軟件兩個(gè)方面簡(jiǎn)單介紹。

一、硬件設(shè)計(jì)
下圖分別為硬件的正面和反面,純手工焊。綜合考慮千兆以太網(wǎng)中的高速數(shù)據(jù)線的差分阻抗100MΩ、數(shù)字電源和模擬電源的劃分等,PCB主要采用四層板的設(shè)計(jì)方案。頂層和底層為信號(hào)走線層;第二層為完整的地層,分為數(shù)字地(DGND)和模擬地(AGND),為頂層的信號(hào)層和電位電流模擬量的采集提供參考;第三層為電源層,本層提供較為完整的3.3V電源平面和模擬地平面,還有1.2V和2.5V的電源平面。
其中硬件設(shè)計(jì)中最要小心的是千兆以太網(wǎng)的設(shè)計(jì)和電流采集部分。千兆網(wǎng)部分采用的是ETL8211EG芯片,支持千兆以太網(wǎng),要實(shí)現(xiàn)千兆網(wǎng)絡(luò),要保證查分阻抗100Ω,就需要考慮蛇形走線和線寬線距、參考層等因素。電流采集部分要考慮模擬地的劃分和電流的放大倍數(shù)、高精度電阻等,這里我選的是INA240A系列,包含20、50、100、200四種增益可以選擇。數(shù)模轉(zhuǎn)換是8通道,每通道16位,支持并行的200SPS的AD7606芯片。SD卡就是最常見的Micro SD Card,買的閃迪的16G的卡。RTC是常見的DS1302?紤]版面問(wèn)題,數(shù)碼管只留了一個(gè)。硬件下載AD源文件下載鏈接:https://download.csdn.net/download/qq_39521541/15110220



AD中的三維圖如下:


各模塊的原理圖如下,這是初版 的原理圖,實(shí)際的硬件在此基礎(chǔ)上進(jìn)行了修改,但是變化不大,就不再截圖了。



[存儲(chǔ)通訊和顯示電路]( ?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM5NTIxNTQx,size_16,color_FFFFFF,t_70)
二、軟件程序編寫
在以上硬件的基礎(chǔ)上編寫了程序,總程序5000余行。實(shí)現(xiàn)了AD7606電壓和電流數(shù)據(jù)的采集和RTC的時(shí)間和內(nèi)部RAM突發(fā)讀寫,然后并行的存儲(chǔ)和通過(guò)千兆以太網(wǎng)與串口發(fā)送到電腦上。
程序的頂層模塊設(shè)計(jì)如下圖:

通過(guò)電腦上的網(wǎng)絡(luò)助手同時(shí)采集到的串口數(shù)據(jù)、千兆以太網(wǎng)數(shù)據(jù)和用Winhex查看的SD卡內(nèi)存儲(chǔ)的數(shù)據(jù)如下圖,數(shù)據(jù)完全一致。串口數(shù)據(jù)為什么也用網(wǎng)絡(luò)助手顯示呢,因?yàn)槲野遄由系拇谏峡梢圆迳弦粋(gè)網(wǎng)絡(luò)模塊,這樣串口數(shù)據(jù)也可以通過(guò)無(wú)線發(fā)送到電腦了,當(dāng)然硬件上也有有線的串口端子,也進(jìn)行了驗(yàn)證,不再截圖贅述。

程序主要難點(diǎn)在于邏輯與時(shí)序的處理,程序中進(jìn)行了一些時(shí)序的操作。為了方便我理清思路也進(jìn)行了主要的時(shí)序圖的繪制,如下圖所示,畫時(shí)序圖的軟件可以在這里下載https://download.csdn.net/download/qq_39521541/14951291,破解版很好用。
程序的模塊結(jié)構(gòu)如下圖所示,其中4G其實(shí)就是串口,為了進(jìn)行跨時(shí)鐘域和SD的閃存,用了雙口FIFO、雙口RAM、單口RAM、ROM等IP核。

接下來(lái)是編譯后的資源占用情況和編譯信息,從圖中可以看出基本不存在警告,其實(shí)現(xiàn)存的三個(gè)警告,完全不影響結(jié)果,而且知道警告存在的原因即可。

時(shí)序約束部分截圖如下,時(shí)鐘主要約束了50M的系統(tǒng)時(shí)鐘、25M的SD卡時(shí)鐘和125M的千兆網(wǎng)時(shí)鐘。

最后的最后附上總的程序源碼:https://download.csdn.net/download/qq_39521541/15110143
感謝大家的批評(píng)指正
|
評(píng)分
-
查看全部評(píng)分
|