一種具有CAN總線通信的稱重設(shè)備設(shè)計(jì)
一、稱重設(shè)備的硬件設(shè)計(jì)
本文引用地址:http://m.butianyuan.cn/article/201611/318329.htm稱重設(shè)備硬件結(jié)構(gòu)如圖1所示,主要由單片機(jī)、外部存儲(chǔ)器、電源電路、看門狗電路、CAN總線接口電路和傳感器采集電路組成。
圖1
1.單片機(jī)
本課題選用宏晶科技的STC12C5A60S2作為中央處理器。它處理速度快、功耗低、抗干擾能力強(qiáng),集成了內(nèi)部復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換、大容量Flash、大容量SRAM、定時(shí)/計(jì)數(shù)器以及片內(nèi)R/C振蕩器和外部晶體振蕩電路等模塊,功能穩(wěn)定強(qiáng)大。
2.外部存儲(chǔ)單元
外部存儲(chǔ)單元包括外部非易失性存儲(chǔ)器(E2PROM)和數(shù)據(jù)存儲(chǔ)器(RAM)。非易失性存儲(chǔ)器選用Atmel公司的存儲(chǔ)芯片AT24C02,主要應(yīng)用于需要掉電保存歷史記錄;數(shù)據(jù)存儲(chǔ)器選取英特爾公司生產(chǎn)的6264RAM芯片,相當(dāng)于PC機(jī)中的內(nèi)存條,主要用來(lái)存放程序中間變量和參數(shù)。
3.看門狗電路
看門狗芯片選取MAX706。能夠在上電或斷電時(shí)產(chǎn)生復(fù)位信號(hào),也能夠防止程序鎖死。為了保持系統(tǒng)的一致性,該設(shè)計(jì)不考慮單片機(jī)內(nèi)部的看門狗,而統(tǒng)一采用看門狗芯片進(jìn)行監(jiān)控。
4.LED指示單元
紅綠雙色LED組成了設(shè)備狀態(tài)指示燈,參照CAN協(xié)議規(guī)范,指示燈的顏色及閃爍的含義如表1所示。
表1
5.傳感器信號(hào)采集電路
稱重傳感器信號(hào)采集電路采用電子秤常用的高精度的A/D轉(zhuǎn)換芯片HX711。它內(nèi)部包含穩(wěn)壓電源和時(shí)鐘振蕩電路,可以減少一些外圍電路的設(shè)計(jì),節(jié)省了元器件和布線空間。
6.系統(tǒng)電源
電路板上所有電子元器件都采用5V電壓供電,因此選用TI公司生產(chǎn)的開關(guān)電源芯片LM2575-5.0將現(xiàn)場(chǎng)總線上的24V電壓轉(zhuǎn)換為5V的標(biāo)準(zhǔn)電壓提供給電路板上的所有電子元器件。
7.現(xiàn)場(chǎng)總線接口電路
包括總線控制器芯片SJA1000、光耦和總線接收發(fā)送芯片PCA82C250。
采用恩智浦半導(dǎo)體的控制器芯片SJA1000來(lái)實(shí)現(xiàn)CAN總線中物理層與數(shù)據(jù)鏈路層的復(fù)雜網(wǎng)絡(luò)協(xié)議,通過編寫SJA1000的驅(qū)動(dòng)程序,把應(yīng)用層建立在SJA1000的基礎(chǔ)之上。
CAN總線收發(fā)器PCA82C250可以在最大1Mbps的通信速率下進(jìn)行工作。該芯片可以把控制器數(shù)據(jù)信號(hào)與總線的差分信號(hào)進(jìn)行相互轉(zhuǎn)換,實(shí)現(xiàn)傳輸和接收總線數(shù)據(jù)功能。
二、稱重設(shè)備的軟件設(shè)計(jì)
1.軟件架構(gòu)設(shè)計(jì)
軟件程序采用前后臺(tái)結(jié)構(gòu),包括主程序和中斷程序,其中中斷程序?yàn)橥獠恐袛喑绦?。從開始進(jìn)入稱重狀態(tài)后進(jìn)行初始化和參數(shù)配置,然后判斷是否上線,如是則運(yùn)行應(yīng)用程序,循環(huán)采集重量并往總線發(fā)送數(shù)據(jù);如否則進(jìn)行錯(cuò)誤診斷,排除故障后繼續(xù)判斷是否上線。
2.稱重傳感器數(shù)據(jù)采集的程序設(shè)計(jì)
串口通信線由管腳DOUT和TPD_SCK組成,當(dāng)管腳DOUT輸出的數(shù)據(jù)等于高電平時(shí),表示未輸出采集數(shù)據(jù),端口PD_SCK應(yīng)為低電平。當(dāng)管腳DOUT由高電平轉(zhuǎn)換成低電平后,端口PD_SCK會(huì)輸入25或者27個(gè)時(shí)鐘脈沖。從第一個(gè)時(shí)鐘脈沖的上升沿開始讀數(shù),直到第24個(gè)脈沖被讀完,將讀出輸出24位數(shù)據(jù)的MSB。
3.CAN現(xiàn)場(chǎng)總線接口程序設(shè)計(jì)
CAN現(xiàn)場(chǎng)總線接口程序設(shè)計(jì)包括CAN控制器SJA1000的初始化、CAN對(duì)象類的設(shè)計(jì)和應(yīng)用層協(xié)議的設(shè)計(jì)。本課題設(shè)計(jì)的稱重設(shè)備是具備CAN現(xiàn)場(chǎng)總線通信能力的從站設(shè)備。
在設(shè)備上電和硬件復(fù)位后,為了配置CAN通信參數(shù),需要先對(duì)CAN控制器SJA1000進(jìn)行上電初始化。初始化首先進(jìn)行關(guān)中斷,然后復(fù)位,之后設(shè)置接收代碼寄存器和屏蔽寄存器,再設(shè)置波特率和地址,最后設(shè)置輸出控制寄存器。完成后開中斷,打開操作模式,結(jié)束。
三、實(shí)驗(yàn)設(shè)計(jì)與結(jié)果
1.實(shí)驗(yàn)平臺(tái)的搭建
該實(shí)驗(yàn)的測(cè)試平臺(tái)如圖2所示。傳感器采集的數(shù)據(jù)同時(shí)發(fā)送給標(biāo)準(zhǔn)負(fù)荷測(cè)量?jī)x與CAN總線。
圖2
2.實(shí)驗(yàn)結(jié)果和分析
USB轉(zhuǎn)CAN接口模塊通道選擇Channel0,網(wǎng)絡(luò)波特率選擇250kbps,設(shè)備MAC ID濾波范圍為000~7FF。上位機(jī)采用德國(guó)SYSTEC公司的USB轉(zhuǎn)CAN接口模塊,它能支持多達(dá)64個(gè)設(shè)備同時(shí)連接到上位機(jī),網(wǎng)絡(luò)分析軟件為PCANView。壓力傳感器使用的是一只S型傳感器,它的準(zhǔn)確度等級(jí)為C2級(jí),最大量程為200kg,檢定分度值e=0.1kg。標(biāo)準(zhǔn)負(fù)荷測(cè)量?jī)x的準(zhǔn)確度為0.005%FS。傳感器和標(biāo)準(zhǔn)負(fù)荷測(cè)量?jī)x經(jīng)檢驗(yàn)是合格的,依據(jù)JJG539-1997《數(shù)字指示秤檢定規(guī)程》進(jìn)行相關(guān)測(cè)試點(diǎn)的選擇。
以稱重砝碼為1.7kg時(shí)舉例,此地址包含8個(gè)字節(jié),在PCANView上顯示時(shí)從左到右為低字節(jié)到高字節(jié)排列顯示??稍O(shè)定左面第一位為小數(shù)點(diǎn)后第一位第二位是個(gè)位數(shù),第三位是十位數(shù),第四位是百位數(shù),以此類推,單位為kg。程序運(yùn)行后,在PCANView中顯示讀數(shù)為1.7kg。同時(shí)觀察標(biāo)準(zhǔn)負(fù)荷測(cè)量?jī)x的示值,得到的測(cè)量值與CAN總線上傳輸?shù)闹凳且恢碌摹?/p>
本實(shí)驗(yàn)證明在CAN總線上傳輸?shù)姆Q重?cái)?shù)據(jù)是實(shí)時(shí)完整和有效的。通過本實(shí)驗(yàn),開發(fā)的稱重設(shè)備能夠連接到CAN總線上并能準(zhǔn)確傳輸具有CAN接口的稱重設(shè)備采集信號(hào)并且通信正常,實(shí)現(xiàn)了預(yù)定的目標(biāo)。
評(píng)論