如何采用FPGA實現傳感器非線性軟件校正
發布時間:2013-03-08 責任編輯:shyhuang
【導讀】現代測量係統中,傳感器的工作性能直接影響整個係統,本文采用ALTERA公司提供的SOPC技術,使用FPGA研究傳感器的非線性軟件校正的算法和實際算法的實現。
非線性軟件校正原理
一個受多個參量影響的傳感器係統可表示為y=f(x,t1,t2,…,tk),其中,x為待測目標參量,t1,t2,…,tk為k個非目標參量,yweichuanganqishuchu。weilexiaochufeimubiaocanliangduichuanganqishuchudeyingxiang,yibancaiyongnixiangjianmodefangfa。shijiceliangdeshuju,youyushoufeimubiaocanliangdeyingxiang,tayumubiaocanliangzhijiandehanshuguanxibuzaishixianxingde。nixiangjianmodemudeshitongguofeixianxingyingshe,bafeixianxinghanshuguanxix=f-1(y,t1,t2,…,tk)向線性函數關係x=y/Abijin。zaimoxingzhong,celiangshujuhefeimubiaocanliangdeceliangzhizuoweishuru,mubiaocanliangdexianxingzhizuoweimoxingdeshuchu,anzhaoyidingdesuanfayuanze,buduantiaozhengmoxingdecanshu,shidemoxingshuchuwuchazaiyunxudefanweizhinei。
在本係統中,選用模擬溫度傳感器AD590作為校正目標,數字溫度傳感器DS18B20測量值作為模型的期望輸出,氣體傳感器TGS813測量值為非目標參量輸入。係統采用ALTERA公司CYCLONEⅡ係列的EP2C35F672 FPGA作為核心處理器,采用QUARTUS-Ⅱ自帶的SOPC Builder開發包作為算法的調試環境,在FPGA其內部實現測量數據的智能處理。
係統方案實現
傳感器調理電路
AD590是美國模擬器件公司生產的單片集成兩端感溫電流源,流過器件的電流(μA)等於器件所處環境的熱力學溫度(K)度數,AD590隨溫度變化輸出的是電流信號,需要將其轉換為電壓信號。由於AD590靈敏度高,受環境的影響大,在使用前需要校正。在本文中,利用神經網絡算法對AD590的輸出進行了校正。
DS18B20是Dallas半導體公司推出的一線式數字化溫度傳感器,可以程序設定9~12位的分辨力,精度為±0.5℃。本文采用外接電源模式,12 bit數據輸出格式。
TGS813是一種由SnO2材料組成的燒結體半導體氣體傳感器,屬於一種廣譜性氣敏元件,對多種氣體敏感,對不被檢測氣體不敏感;由於輸出電壓最高可以達到+9 V,而後級模擬數字轉換電路的輸入電壓不超過+5 V,所以,使用前需要調整分壓電阻器的阻值。
模擬數字轉換電路
來(lai)自(zi)傳(chuan)感(gan)器(qi)的(de)模(mo)擬(ni)信(xin)號(hao),在(zai)送(song)入(ru)模(mo)擬(ni)數(shu)字(zi)轉(zhuan)換(huan)電(dian)路(lu)之(zhi)前(qian),由(you)於(yu)器(qi)件(jian)的(de)輸(shu)入(ru)阻(zu)抗(kang)比(bi)較(jiao)低(di),而(er)傳(chuan)感(gan)器(qi)的(de)輸(shu)出(chu)阻(zu)抗(kang)較(jiao)高(gao),不(bu)能(neng)直(zhi)接(jie)把(ba)模(mo)擬(ni)信(xin)號(hao)送(song)入(ru)模(mo)擬(ni)數(shu)字(zi)轉(zhuan)換(huan)電(dian)路(lu)。本(ben)文(wen)采(cai)用(yong)TLC279構成電壓跟隨器,實現阻抗變換。考慮到在FPGA實現的算法處理對數據的精度敏感,因此,係統選用了四路模擬量輸入的12 bit串行數據輸出的TLV2544作為模擬數字轉換電路的核心芯片。
TLV2544是TI公司生產的高性能12位低功耗、高速(3.6μs)CMOS模數轉換器,具有采樣一保持功能,電源電壓為2.7~5.5V。TLV2544還具有3個輸入端和1個三態輸出端,可為最流行的微處理器串行端口(SPI)提供4線接口。器件在上電初始化時首先需要將初始化命令A000h寫入CFR配置寄存器,然後,對器件進行編程,其編程方法是在初始化命令A000h的低12位000h寫入編程數據以規定器件的工作方式。TLV2544具有4種轉換模式:單次模式、重複模式、掃描模式和重複掃描模式,可用模式00.01,10,11表示。圖1為TLV2544和單片機AT89C2051的接口電路。該電路采用外部基準,REFP與REFM之間接0.1μF和10μF2隻去耦電容器。

圖1:TLV2544控製電路
各路信號送入微處理器AT89C2051,經串行口發送給係統板。微處理器的軟件設計主要是在接收到SOPC係統控製發送的采集命令(0x41H),啟動TLV2544和DS18B20,將數據轉為ASCII碼發送。DS18B20和TLV2544都是12bit輸出,所以,每次發送9個ASCII碼,分別代表3個數據源的轉換結果。
[page]
神經網絡校正算法
利用BP神經網絡實現非線性誤差軟件校正的文獻較多,但主要是基於PC機的仿真實驗。單片微處理器由於存儲容量和數據總線寬度的限製,網絡結構類型和計算精度隻能控製在一定範圍之內。SOPC在大規模集成電路的基礎上,底層電路采用硬件描述語言實現,而軟件算法則在SOPC IDE調試環境下采用高級語言,如C語言實現。在本文中,SOPC係統板采用NIOS-Ⅱ軟核微處理器,32 bit總線,工作頻率為50 MHz,BP神經網絡采用動量法,在ALTERA公司提供的SOPC IDE調試環境下完成。算法處理結構如圖2所示。

圖2:神經網絡校正算法係統框圖
算法測試
本文采用三層前向網絡,輸入層神經元2個,分別代表溫度傳感器ADS90和氣體傳感器TGS813輸入信號,DS18B20的測量值作為AD590的期望值,輸出層神經元1個,代表AD590的校正值。
本文共采集了70個樣本對數據作為神經網絡的輸入。神經網絡的訓練采樣動量自適應算法,剔除部分不符合要求的樣本,58個樣本作為訓練樣本,8個樣本作為測試樣本。BP神經網絡采用C語言編程實現,由於微處理器與PC機(ji)相(xiang)比(bi),在(zai)工(gong)作(zuo)頻(pin)率(lv)和(he)總(zong)線(xian)結(jie)構(gou)方(fang)麵(mian)還(hai)存(cun)在(zai)很(hen)大(da)差(cha)距(ju),因(yin)此(ci),在(zai)計(ji)算(suan)算(suan)法(fa)的(de)誤(wu)差(cha)輸(shu)出(chu)時(shi),本(ben)文(wen)采(cai)用(yong)的(de)是(shi)各(ge)個(ge)訓(xun)練(lian)樣(yang)本(ben)的(de)絕(jue)對(dui)誤(wu)差(cha)的(de)累(lei)加(jia)和(he),而(er)不(bu)是(shi)均(jun)方(fang)根(gen)誤(wu)差(cha),這(zhe)樣(yang),可(ke)以(yi)避(bi)免(mian)大(da)量(liang)的(de)乘(cheng)法(fa)和(he)開(kai)方(fang)運(yun)算(suan),否(fou)則(ze),算(suan)法(fa)很(hen)難(nan)收(shou)斂(lian)。 作為BP神(shen)經(jing)網(wang)絡(luo)動(dong)量(liang)法(fa)的(de)重(zhong)要(yao)參(can)數(shu),如(ru)果(guo)學(xue)習(xi)率(lv)參(can)數(shu)選(xuan)擇(ze)的(de)範(fan)圍(wei)比(bi)較(jiao)窄(zhai),那(na)麼(me),網(wang)絡(luo)性(xing)能(neng)的(de)隨(sui)機(ji)性(xing)特(te)點(dian)就(jiu)會(hui)非(fei)常(chang)明(ming)顯(xian),不(bu)利(li)於(yu)網(wang)絡(luo)的(de)推(tui)廣(guang)應(ying)用(yong)。圖(tu)3是選擇不同的學習率時網絡輸出誤差的變化情況。測試條件是動量係數為0.9,增益為1,隱含層節點6個,算法停止迭代的判斷條件是輸出絕對誤差累加和小於0.01。
圖4是58對訓練樣本完成網絡訓練後的測試結果。由於BP神經網絡的性能受隱含層節點個數影響比較大,圖中數據是在不同隱含層節點個數的條件下得到的,並與MATLAB軟件仿真得到的結果作了比較。網絡訓練的條件:學習率為0.1,動量係數為0.9,增益為1,SOPC停止迭代的判斷條件是輸出絕對誤差累加和小於0.01,MATLAB停止迭代的判斷條件是均方根誤差小於0.0001,圖中,n代表隱含層節點個數。

圖3:學習率對網絡輸出誤差的影響

圖4:隱含層節點數對網絡輸出的影響
由於采用的是12 bit的A/D轉換芯片,采集數據送入FPGA係統板後,經過歸一化處理,數據類型發生變化。與MATLAB仿真軟件輸出結果保持一致,基於FPGA的神經網絡輸出取小數點後4位有效數字。由圖4可以得出:雖然在個別測試點上基於MATLAB軟件仿真結果優於SOPC的輸出結果,但在隱含層節點對算法性能的影響程度上,基於SOPC技術的輸出受到的影響比較小,穩定性好,這與SOPC技術采用32位字長有很大關係。
結論
基於FPGA的SOPC技術不同於IC芯片設計,它是把已有的模塊資源組合成一個係統,係統的功能直接由載體FPGA芯片實現;它又不同於傳統的基於單片微處理器的係統設計,因為SOPC係統的微處理器性能和外圍接口控製電路都是由用戶編程設定的,因此,采用SOPC技術可以節省成本,提高資源利用率,縮短開發周期和便於係統升級等特點。本文采用基於FPGA的SOPC技術研究了傳感器非線性軟件校正的問題。算法的測試結果證實了方法的可行性。
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
- 芯科科技Tech Talks與藍牙亞洲大會聯動,線上線下賦能物聯網創新
- 冬季續航縮水怎麼辦?揭秘熱管理係統背後的芯片力量
- 從HDMI 2.1到UFS 5.0:SmartDV以領先IP矩陣夯實邊緣計算基石
- 小空間也能實現低噪供電!精密測量雙極性電源選型指南,覆蓋小功率到大電流全場景
- 直擊藍牙亞洲大會 2026:Nordic 九大核心場景演繹“萬物互聯”新體驗
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall




