咨詢電話
ENGLISH0755-88840386發(fā)布時(shí)間:2021-10-15 14:35:19 |來(lái)源:網(wǎng)絡(luò)轉(zhuǎn)載
提出了一種基于C8051F064和CC1101的近距離無(wú)線傳輸稱重控制器的設(shè)計(jì),將嵌入式技術(shù)和無(wú)線通信技術(shù)有機(jī)結(jié)合起來(lái),采用了二級(jí)定量稱重控制,該控制器實(shí)時(shí)性強(qiáng),穩(wěn)定性好,有著廣泛的應(yīng)用前景。
1稱重控制器的工作原理
稱重控制器以C8051F064為信息處理單元,并以CC1101為無(wú)線通信單元,主要由稱重信號(hào)采集模塊、鍵盤和稱重顯示模塊、輸入輸出控制電路、無(wú)線傳輸模塊等部分組成。當(dāng)稱重傳感器上裝載重物時(shí),稱重傳感器產(chǎn)生與被測(cè)物體載荷成正比的電壓信號(hào),電壓信號(hào)經(jīng)放大和濾波后,傳送至C8051F064單片機(jī)內(nèi)部的16位的AD轉(zhuǎn)換器轉(zhuǎn)換,完成稱重信號(hào)的采集,經(jīng)單片機(jī)數(shù)據(jù)處理后通過(guò)顯示電路顯示被測(cè)物體載荷的大小。稱重控制器利用CC1101無(wú)線傳輸模塊,將數(shù)據(jù)通過(guò)無(wú)線傳輸?shù)姆绞桨l(fā)送至上位計(jì)算機(jī)。
2硬件電路的設(shè)計(jì)
2.1信號(hào)采集電路
信號(hào)采集電路由稱重傳感器、放大濾波電路及C8051F064內(nèi)的16位AD轉(zhuǎn)換器等組成。稱重傳感器采用電阻應(yīng)變式傳感器,實(shí)現(xiàn)將稱重載荷信號(hào)轉(zhuǎn)換為微弱的電壓信號(hào)。放大濾波電路采用TI公司的OPA37和OP07等組成。該電路將稱重傳感器輸出的電壓信號(hào)進(jìn)行放大和濾波。
2.2輸入輸出控制模塊
輸入輸出控制模塊用于實(shí)現(xiàn)加料門和排料門的控制。加料門有兩種加料狀態(tài):快加料、慢加料。控制輸出模塊由TLP521-4光電耦合器和S8050驅(qū)動(dòng)三極管等器件組成,用于將控制信號(hào)經(jīng)光電耦合器和三極管驅(qū)動(dòng)后,對(duì)繼電器和相應(yīng)的加料門和排料門進(jìn)行控制??刂戚斎肽K主要用于檢測(cè)加料門和排料門位置傳感器輸入信號(hào)的狀態(tài)。先檢測(cè)排料門傳感器,如確認(rèn)排料門處在關(guān)閉狀態(tài),則可以加料。加料時(shí)首先進(jìn)入快加料,當(dāng)快加料達(dá)到預(yù)定值時(shí),單片機(jī)接口P5.0輸出控制信號(hào)使加料門置于慢加料工作狀態(tài);然后進(jìn)行慢加料,慢加料結(jié)束時(shí),單片機(jī)接口P5.1輸出信號(hào)關(guān)閉加料門,結(jié)束加料,并且檢測(cè)加料門位置傳感器,如確認(rèn)加料門處在關(guān)閉狀態(tài),則可以排料,排料結(jié)束后進(jìn)入下一個(gè)過(guò)程。
3數(shù)據(jù)預(yù)處理
采集到的重量數(shù)據(jù)受各種干擾影響,必須先進(jìn)行預(yù)處理。本文采用一種滑動(dòng)平均濾波法對(duì)稱重?cái)?shù)據(jù)預(yù)處理?;瑒?dòng)平均濾波則k時(shí)刻濾波器的輸出數(shù)
學(xué)表達(dá)式如下:
由(1)式可知,滑動(dòng)平均濾波器首先采集2N+1個(gè)數(shù)據(jù)并分別存入2N+1個(gè)內(nèi)存單元;完成2N+1個(gè)稱重?cái)?shù)據(jù)的初次采樣后,以后每采樣一次,每次采樣的新數(shù)據(jù)放入隊(duì)尾,并扔掉隊(duì)首的一次數(shù)據(jù),把隊(duì)列中的2N+1個(gè)數(shù)據(jù)求平均運(yùn)算,即獲得新的濾波數(shù)據(jù)輸出序列。滑動(dòng)平均濾波器長(zhǎng)度2N+1由AD轉(zhuǎn)換速率和稱重結(jié)果穩(wěn)定時(shí)間決定。C8051F064的AD轉(zhuǎn)換速率最大可達(dá)1Msps,本設(shè)計(jì)采用的采樣周期為4.5ms,并考慮短時(shí)間內(nèi)采樣值的穩(wěn)定,經(jīng)多次試驗(yàn)取2N+1=15。
4軟件設(shè)計(jì)
稱重控制器的主程序主要實(shí)現(xiàn)信號(hào)采集和處理、加排料控制、重量顯示和無(wú)線數(shù)據(jù)傳輸?shù)裙δ?/font>。
4.1數(shù)據(jù)采集
數(shù)據(jù)采集通過(guò)向ADC0控制寄存器的AD0BUSY寫(xiě)“1”啟動(dòng)數(shù)據(jù)轉(zhuǎn)換,當(dāng)查詢到ADC0控制寄存器的AD0INT為“1”時(shí),轉(zhuǎn)換結(jié)束,接著處理ADC數(shù)據(jù)。
數(shù)據(jù)采集的程序如下:
voidGetADdata()
{charold_SFRPAGE=SFRPAGE;
intidatatemp;
BYTEADH,ADL;
temp=0;
SFRPAGE=ADC0_PAGE;
AD0INT=0;
AD0BUSY=1;
while(AD0INT==0);
SystemDelay(20);
ADH=ADC0H;
ADL=ADC0L;
temp=ADH;
temp=temp<<8;
temp=temp+ADL;
SFRPAGE=old_SFRPAGE;
}
4.2控制子程序
控制程序中用的二級(jí)定量分為快加料目標(biāo)量M1,慢加料目標(biāo)量M2。當(dāng)快加料重量達(dá)到M1時(shí),快加料過(guò)程結(jié)束;控制加料門變?yōu)槁恿?,進(jìn)入慢加料過(guò)程,慢加料達(dá)到M2時(shí),慢加料過(guò)程結(jié)束,關(guān)閉加料門,M2=M-M3,其中M為設(shè)定目標(biāo)量,M3為提前量。從發(fā)出關(guān)閉加料門指令到關(guān)上加料門這段時(shí)間內(nèi),加料口繼續(xù)加料,會(huì)出現(xiàn)一個(gè)落差量(也就是提前量),所以要提前關(guān)閉加料門,才能確保加料更準(zhǔn)確。
4.3無(wú)線通信模塊軟件設(shè)計(jì)無(wú)線通信功能模塊主要由CC1101接收和發(fā)送程序組成,單片機(jī)通過(guò)SPI接口對(duì)CC1101進(jìn)行配置。當(dāng)CSn為低電平時(shí),SPI接口開(kāi)始工作,準(zhǔn)備接受一條指令,CSn由高到低跳變時(shí)開(kāi)始轉(zhuǎn)換指令。
CC1101發(fā)送模式編程過(guò)程:
1)發(fā)送模式初始化,對(duì)要發(fā)送的數(shù)據(jù)進(jìn)行編碼;
2)使能TX狀態(tài),傳數(shù)據(jù)到TXFIFO,如果數(shù)據(jù)沒(méi)有全部傳輸?shù)?/font>TXFIFO,則MCU進(jìn)入低功耗模式;
3)如果發(fā)送數(shù)據(jù)小于256時(shí)采用固定長(zhǎng)的發(fā)送,否則采用無(wú)限長(zhǎng)度發(fā)送。
CC1101接收模式編程過(guò)程:
1)接收模式初始化,并設(shè)置無(wú)限接收字節(jié)長(zhǎng)度模式,使能接收中斷選通接收狀態(tài);
2)激活接收模式,如果所有字節(jié)沒(méi)有全部被讀到RXFIFO,則MCU將設(shè)置為低功耗模式;
3)對(duì)RXFIFO數(shù)據(jù)包進(jìn)行解碼,讀出有效載荷送入單片機(jī)。
5結(jié)束語(yǔ)
該稱重控制器能實(shí)時(shí)地將測(cè)量數(shù)據(jù)通過(guò)無(wú)線傳輸?shù)姆绞桨l(fā)送給上位計(jì)算機(jī),并可以通過(guò)組網(wǎng)方式實(shí)現(xiàn)對(duì)分散的測(cè)量數(shù)據(jù)集中管理,此無(wú)線稱重控制器實(shí)時(shí)性強(qiáng),穩(wěn)定性好。
本文源于網(wǎng)絡(luò)轉(zhuǎn)載,如有侵權(quán),請(qǐng)聯(lián)系刪除