陳新喜
(湖南鐵道職業(yè)技術(shù)學(xué)院 湖南 株洲 412001)
電子秤是現(xiàn)代電子發(fā)展的產(chǎn)物,由于他具有操作簡(jiǎn)單、方便、精度高等優(yōu)點(diǎn)在工業(yè)、日常生活各領(lǐng)域廣泛應(yīng)用,從功能看可分為單一計(jì)重秤、計(jì)重計(jì)價(jià)秤、計(jì)重計(jì)數(shù)秤等多種。其中單一計(jì)重秤在日常生活中最常見(jiàn),計(jì)重計(jì)價(jià)秤在商場(chǎng)、市場(chǎng)中廣泛應(yīng)用,計(jì)重計(jì)數(shù)秤主要應(yīng)用在工業(yè)領(lǐng)域[1],如電子元器件的裝袋、小的零部件的裝袋等,由于這些元件、零部件體積小、重量輕、每袋數(shù)量大,以前都是人工數(shù),這樣既需要大量人工,還容易出錯(cuò)。為了解決這些問(wèn)題,一種高精度既能計(jì)重還能根據(jù)單重計(jì)算數(shù)量的電子秤運(yùn)行而生[2],這就是本文要介紹的計(jì)重計(jì)數(shù)電子秤。
電子秤硬件結(jié)構(gòu)主要由以下幾部分構(gòu)成,稱重傳感器、放大電路、A/D轉(zhuǎn)換電路、CPU、輸入輸出電路等構(gòu)成,其工作原理就是稱重傳感器把重力轉(zhuǎn)換成4~20 mV的mV級(jí)電壓,再通過(guò)放大器放大到A/D轉(zhuǎn)換所需的V級(jí)電壓,通過(guò)A/D轉(zhuǎn)換成數(shù)字量,通過(guò)CPU計(jì)算處理變成相應(yīng)的重量值,顯示或輸出。計(jì)重計(jì)數(shù)電子秤硬件結(jié)構(gòu)與普通電子秤相同,不同在于要求精度高、軟件功能有所增加,而電子秤的量程和精度是由A/D決定的,本文介紹的CS5530就一種串行A/D芯片,由于其位數(shù)多、價(jià)格便宜,在高精度電子秤中具有巨大優(yōu)勢(shì)而廣泛使用[3],電子秤結(jié)構(gòu)框圖如圖1所示。
圖1 電子秤結(jié)構(gòu)框圖Fig.1 Block diagram electronic scales
A/D轉(zhuǎn)換電路是電子秤的關(guān)鍵部件,這里以一款3 kg/0.1 g的電子秤為例來(lái)介紹A/D芯片的選型,現(xiàn)在市場(chǎng)上A/D芯片種類繁多,從接口來(lái)分有并行、串行的,從轉(zhuǎn)換速度來(lái)分有超速的、高速的、低速的,從精度來(lái)看有幾位到幾十位多種型號(hào),一般并行價(jià)格相對(duì)貴,速度越高越貴,位數(shù)越多越貴,價(jià)格從幾元到幾百元,高的甚至達(dá)萬(wàn)元以上,而電子秤在速度上要求不快,但根據(jù)不同量程和精度要求對(duì)位數(shù)有一定要求,做為電子產(chǎn)品成本是關(guān)鍵,所以選擇低成本的串行A/D是首選,下面具體介紹一下如何通過(guò)量程和精度來(lái)確定要選A/D的位數(shù)。電子的精度分為外部和內(nèi)部?jī)煞N,外部精度就是顯示精度,這也是我們一般講的電子秤的精度,而要達(dá)到外部穩(wěn)定顯示重量,內(nèi)部精度必須更高,以般是外部精度的10倍。內(nèi)部精度直接由A/D芯片位數(shù)確定。
3 kg/0.1 g電子秤外部精度為:3 000 g/0.1 g=30 000;所以內(nèi)部精度應(yīng)該大于等于:30 000×10=300 000。設(shè)A/D的位數(shù)為n,則2的n之方應(yīng)大于 300 000,所以n應(yīng)大于 18。而大于18位的A/D主要有20位、24位、32位等,所以一般選擇20位或24位較合適?,F(xiàn)在該檔電子秤精度的電子秤一般選擇20位的CS5513,而CS5513本身無(wú)放大電路,需配一個(gè)雙運(yùn)放電路,常用的為OP2277,前者的價(jià)格在20元左右,OP2277也要15元左右,所以運(yùn)放和A/D總成本需35元。另一種是24位A/D芯片CS5530,內(nèi)部包括可編程放大電路,放大位數(shù)在1~64位可選,成本在22元左右,所以從性價(jià)比來(lái)看選用CS5530更好。
1.2.1 CS5530特性
CS5530是一款24位SPI總線的中行A/D芯片。主要特性如下:
1)內(nèi)部1-64倍放大器;
2)性線失真小于0.0015%,準(zhǔn)確分辨率19位以上;
3)三線串行接口;
4)內(nèi)含電源管理、放大倍數(shù)、配置寄存器;
5)轉(zhuǎn)換速度從 6.25~3 840 Hz可調(diào);
6)多種電源供電方案可選;
1.2.2 CS5530引腳及功能描述
1)引腳圖,如圖2所示。
圖2 CS5530引腳圖Fig.2 CS5530 pin diagram
2)相關(guān)寄存器
①配置寄存器描述
圖3 Configuration register描述Fig.3 Configuration register description
PSS:0標(biāo)準(zhǔn)模式 (晶振激活,可快速上電),1睡眠模式(晶振停止)
PDW:0正常模式,1激活電源存選擇模式
RS:系統(tǒng)復(fù)位,0正常模式,1復(fù)位
RV:0正常模式,1系統(tǒng)被復(fù)位,該位只讀
IS:0正常輸入,1短輸入
VRS: 參考電壓選擇,0:2.5 V < VREF ≤ [(VA+)-(VA-)],1:1 V ≤ VREF ≤ 2.5 V
A1-A0:
FRS:0默認(rèn)速率,1以設(shè)定速率的5/6工作
WR3-WR0:速率選擇,
Bit WR (FRS=0) WR (FRS=1)
0000 120 Sps 100 Sps
0001 60 Sps 50 Sps
0010 30 Sps 25 Sps
0011 15 Sps 12.5 Sps
0100 7.5 Sps 6.25 Sps
1000 3840 Sps 3200 Sps
1001 1920 Sps 1600 Sps
1010 960 Sps 800 Sps
1011 480 Sps 400 Sps
1100 240 Sps 200 Sps
UP/BP:0選擇 模式,1:選擇 模式
OCD:0正常模式,1開(kāi)電流源
NU:保留位
②增益寄存器描述
圖4 增益寄存器描述Fig.4 Gain register description
功能設(shè)定放大倍數(shù),從0至64-2-24,上電后D24為1,其他位為0
③失調(diào)寄存器描述
圖5 失調(diào)寄存器描述Fig.5 Offset register description
圖6 數(shù)據(jù)輸出轉(zhuǎn)換格式Fig.6 Data output conversion format
D31-D8為24位數(shù)據(jù),D2為溢出標(biāo)志,為1溢出,數(shù)據(jù)有錯(cuò)誤,其他位為0
CS5530外圍原理圖,如圖7所示。
J2接稱重傳感器,1-4分別為電源地、電源正、信號(hào)負(fù)、信號(hào)正,VREF-接地,VREF+接2.5 V通過(guò)精密電阻對(duì)電源分壓所得,SCLK、SDO、SDI分別接單片機(jī) P12、P11、P10,CS 接地。
對(duì)CS5530內(nèi)部寄存器進(jìn)行初始化,設(shè)定相關(guān)工作方式,放大倍數(shù),轉(zhuǎn)換速度等工作。
圖7 CS5530原理圖Fig.7 CS5530 schematic
具體程序如下:
void CS5530_Init(void)
{
CS5530Reset(0x00);//復(fù)位
CS5530_WriteCmd (0x01,0x00000000);//寫 OFFSET 寄存器
CS5530_WriteCmd(0x02,0x3fffffff);//寫 GAIN 寄存器
CS5530_WriteCmd (0x03,0x02004800);//寫 CONFIG 寄存器
}
對(duì)CS5530 3個(gè)寄存器進(jìn)寫數(shù)據(jù)操作,具體程序如下:
void CS5530_WriteCmd(UINT8 cmd,UINT32 d)
{
UINT8 i;
for(i=0;i<8;i++)
{
CS5530_CLK=0;
if(cmd&0x80==0x80)
CS5530_SDIN=1;
else
CS5530_SDIN=0;
CS5530_CLK=1;
cmd<<=1;
_nop_();
_nop_();
}
for(i=0;i<32;i++)
{
CS5530_CLK=0;
if(d&0x80000000==0x80000000)
CS5530_SDIN=1;
else
CS5530_SDIN=0;
CS5530_CLK=1;
d<<=1;
_nop_();
_nop_();
}
}
具體程序如下:
UINT32 CS5530_ReadData(UINT8 d)
{
UINT8 i;
UINT32 value;
REPEATREAD:
value=0;
CS5530_SDOUT=1;
for(i=0;i<8;i++)
{
CS5530_CLK=0;
if(d&0x80==0x80)
CS5530_SDIN=1;
else
CS5530_SDIN=0;
CS5530_CLK=1;
d<<=1;
_nop_();
_nop_();
}
CS5530_CLK=0;
CS5530_SDIN=0;
while(CS5530_SDOUT);
for(i=0;i<8;i++)
{
CS5530_CLK=0;
_nop_();
_nop_();
CS5530_CLK=1;
_nop_();
_nop_();
}
for(i=0;i<32;i++)
{
value<<=1;
CS5530_CLK=0;
if(CS5530_SDOUT)
value|=0x01;
CS5530_CLK=1;
}
CS5530_CLK=0;
if((value&0x04)==0x04)//OV
goto REPEATREAD;
return((value >>8) &0xffffff);
}
電子產(chǎn)品發(fā)展速度快,生產(chǎn)量大,采用高集成度芯片,可以提高穩(wěn)定性,降低生產(chǎn)成本,本論文采用CS5530設(shè)計(jì)的電子秤,穩(wěn)定性好,生產(chǎn)成本低,具有廣闊的應(yīng)用前景。
[1]潘佑華,林盛鑫.基于51單片機(jī)的多功能電子秤設(shè)計(jì)研究[J].科技傳播,2012(6):188-189.PANYou-hua,LIN Sheng-xin.Based on 51 single-chip multifunction electronic scale design studies[J].Scientific Communication,2012(6):188-189.
[2]羅及紅.一種高精度的電子秤設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2010,18(8):1955-1958.LUO Ji-hong.A high precision electronic scale design[J].Computer Measurement&Control,2010,18(8):1955-1958.
[3]肖思寧.精密電子秤設(shè)計(jì)[J].廣西物理,2008,3(18):28-30.XIAO Si-ning.Precision weigh scale design[J].Guangxi Physics,2008,3(18):28-30.
[4]從佩仁.淺談電子秤的誤差來(lái)源與解決方法[J].計(jì)算與測(cè)量技術(shù),2008,35(6):45-47.CONG Pei-ren.Talking electronic scale error sources and solutions[J].Calculation and Measurement Technology,2008,35(6):45-47.
[5]張海霞,滕召勝,易霞,等.新型便攜式電子秤設(shè)計(jì)[J].測(cè)量與設(shè)備,2005(9):6-9.ZHANG Hai-xia,TENG Zhao-sheng,YI Xia,et al.The new design of a portable electronic scale[J].Measured with the Device,2005(9):6-9.
[6]孫娜.基于單片機(jī)的便攜式電子秤的設(shè)計(jì)[J].中國(guó)科技信息,2012(1):98-100.SUN Na.MCU-based design of a portable electronic scale[J].Chinese Scientific Information,2012(1):98-100.