天地(常州)自動化股份有限公司 李冠華
當金屬絲在外力作用下發(fā)生機械變形時,其電阻值將發(fā)生變化,這種效應稱為電阻應變效應;金屬絲受到軸向拉力時,其長度增加而橫截面變小,引起電阻增加;反之,當它受到軸向壓力時則導致電阻減小[1]。利用金屬絲的這種特性可將力、壓力、位移、應變、扭矩、加速度等被測量的變化轉(zhuǎn)換成傳感器元件電阻值的變化,再經(jīng)過轉(zhuǎn)換電路變成電信號輸出,即通常所說的應變傳感器。本文利用應變電阻設計了一種基于CAN總線的應力變送器,可用于張緊絞車等地方的拉力檢測。
應力變送器的硬件電路主要由信號采集放大電路,按鍵電路,顯示電路,CAN總線輸出、頻率輸出電路幾部分組成。
將需要檢測的應力通過應變電阻轉(zhuǎn)化成變化的電阻信號,通過惠斯通電橋?qū)⒆兓碾娮栊盘栄b換成電壓信號輸出(如圖1所示)。
圖1中由R1、R2、R3、R4組成電橋,其中R4為應變電阻,Vref給電橋供電,AD+、AD-為電橋輸出的隨應力變化而改變的差分電壓信號。因為AD+,AD-的差值只有毫伏級,電橋電源的微小波動都會對輸出信號產(chǎn)生影響,導致放大采樣后的大誤差?;诖丝紤]電橋電源采用了精密基準源LM4040AIM3-8.192(見圖2)供電,精度達到±0.1%,100ppm/°C,保證輸出信號的精度。
圖1
圖2
圖3
圖4
圖5 CAN總線收發(fā)電路
圖6 頻率輸出電路
圖7 電路設計如圖
圖8 引腳與單片機連接
圖9 主程序框圖
圖10 程序框圖
圖11 傳感頭的安裝
電路設計為測試拉力在0~10t變化時AD+,AD-兩腳的壓差在0~10mV,由于信號非常微弱,因此需要將其放大后再引進單片機AD采樣。放大電路采用儀表放大器AD623,它是美國模擬器件公司推出的一種低價格、單電源、輸出擺幅能達到電源電壓的儀表放大器[2]。AD623直流增益精度為0.1%(G=1),增益漂移25ppm(G=1)。另外它的輸入共模范圍很寬,應用非常簡單,使用一只外接電阻即可設置高達1000的增益,從而給用戶帶來極大方便。如圖3。
圖中網(wǎng)絡標號ANI腳輸出電壓UANI=(VAD+ - VAD-)*(1+100k/R10)。由公式可得,只要調(diào)節(jié)R10即可改變增益,從而可以很方便選取我們所需要的放大倍數(shù)。
圖1,圖2,圖3中的電阻均采用低溫漂的精密電阻。
應力變送器單片機采用microchip公司的PIC18F2480(圖4),總共有28腳,芯片內(nèi)集成了CAN控制器,簡化了開發(fā);另外,芯片內(nèi)部還集成了EEPROM,調(diào)校完成后可將調(diào)校參數(shù)存儲,而不用每次上電都重新調(diào)校。
CAN總線收發(fā)電路如圖5。
接口電路中收發(fā)器采用AMIS42675[3],經(jīng)過實驗驗證,其驅(qū)動的總線電平高于常用的PCA82C250,并且其功耗要小于PCA82C250。CAN總線接口與MCU之間采用雙路磁耦ADUM1201隔離。相比于高速光耦,磁耦時延小,并且其功耗也小很多。F13,F(xiàn)15,F(xiàn)16為瞬態(tài)抑制二極管,當總線上受到大的尖峰脈沖干擾的時候,能夠?qū)偩€起到保護作用。
圖6中是頻率輸出電路,由于輸出信號需要具備一定的驅(qū)動能力,因此在輸出側(cè)通過三極管V6增加輸出頻率信號的驅(qū)動能力。頻率信號的正、負脈沖寬度不小于0.3ms,高電平不小于3V(拉出電流2mA),低電平不大于0.5V。L2為共模扼圈,F(xiàn)6為TVS管,用于濾除線上瞬變干擾。
應力變送器設有3個按鍵,用于出廠調(diào)校。兩個鍵用于參數(shù)的增減,另外一個鍵用于功能確認。電路設計如圖7,按鍵不按時單片機引腳檢測為高電平,按下后變?yōu)榈碗娖健?/p>
應力變送器需要人機交互的信息很少,主要是指示實際拉力以及調(diào)校時用于顯示輸出值,因此采用常見的2行16個字的液晶模塊LCD1602即可。字符型LCD 通常有14條引腳線(8位數(shù)據(jù)線D1~D2,2根電源線VCC、GND,1根液晶顯示偏壓線VL,數(shù)據(jù)/命令選擇線RS,讀/寫選擇線RW,使能線E)或16條引腳線兩種,多出來的2條線是背光電源線BL+(15腳)和地線BL-(16腳),其控制原理與14腳的LCD完全一樣。 引腳與單片機連接見圖8。
由于器件的差異性,應力變送器出廠需要調(diào)校,而調(diào)校的數(shù)據(jù)存在EEPROM中,上電后初始化液晶顯示,讀取調(diào)校值。進入主循環(huán)后對信號采樣計算,換算成對應的應力送液晶顯示,還有對應的CAN總線信號輸出、頻率信號輸出。若在運行過程中發(fā)現(xiàn)有功能鍵按下,則進入調(diào)校程序。主程序框圖見圖9。
初始化函數(shù)主要對端口初始化,AD采樣初始化,液晶LCD1602初始化,定時器初始化,并且讀取EEPROM中的調(diào)校報警數(shù)值。
定時器設定一個固定中斷時間,主要用于程序的心跳。CAN總線數(shù)據(jù)定時發(fā)送、AD采樣間隔、液晶數(shù)據(jù)傳送間隔都以此為基準根據(jù)實際需要乘以整數(shù)倍。另外頻率信號的輸出也通過在定時器中翻轉(zhuǎn)I/O實現(xiàn)。
AD采樣是通過中斷來實現(xiàn)的,在中斷中讀出采樣值,并置標志位,在主循環(huán)中檢測到標志位后對數(shù)據(jù)進行處理。
數(shù)字濾波法有用于克服大脈沖干擾的數(shù)字濾波法,也有適用抑制小幅度高頻噪聲的平均濾波法。在實際應用中,有時既要消除大幅度的脈沖干擾,又要做數(shù)據(jù)平滑。因此常把前面介紹的兩種以上的方法結(jié)合起來使用,形成復合濾波。
應力變送器AD采樣軟件設計采用去極值平均濾波算法:先用中值濾波算法濾除采樣值中的脈沖性干擾,然后把剩余的各采樣值進行平均濾波。連續(xù)采樣N次,剔除其最大值和最小值,再求余下N-2個采樣的平均值。顯然,這種方法既能抑制隨機干擾,又能濾除明顯的脈沖干擾[4]。
CAN總線數(shù)據(jù)輸出采用定時發(fā)送的方式,數(shù)據(jù)的發(fā)送通過中斷完成。在上電時CAN總線初始化時將發(fā)送中斷使能位、發(fā)送中斷標志位都置位使其進入發(fā)送中斷。在中斷中將需要輸出的CAN總線數(shù)據(jù)填入發(fā)送緩沖區(qū),并置位請求發(fā)送位。程序框圖見圖10。
LCD1602的顯示主要要注意讀寫時序,對其進行每次讀寫操作前都必須進行讀寫檢測。每次LCD1602進行操作的時候,需要對其判斷是否處于忙的狀態(tài)。如果是處于忙的狀態(tài),就需要等其忙完再對它進行讀寫操作。下面列出了LCD1602的讀寫函數(shù)。
void lcd_wcom(uchar com)//LCD1602寫命令函數(shù)
{
LATB1=0; //選擇指令寄存器
LATB0=0; //選擇寫
LATC=com; //把命令字送入
delay(5); //延時一小會兒,讓1602準備接收數(shù)據(jù)
LATB4=1; //使能線電平變化,命令送入1602的8位數(shù)據(jù)口
LATB4=0;
}
void lcd_wdat(uchar dat) //LCD1602寫數(shù)據(jù)函數(shù)
{
LATB1=1; //選擇數(shù)據(jù)寄存器
LATB0=0; //選擇寫
LATC=dat; //把要顯示的數(shù)據(jù)送入
delay(5);//延時一小會兒,讓1602準備接收數(shù)據(jù)
LATB4=1; //使能線電平變化,數(shù)據(jù)送入1602的8位數(shù)據(jù)口
LATB4=0;
}
應力變送器設有3個按鍵,兩個鍵用于參數(shù)的增減,另外兩個按鍵一個用于鍵功能確認,按下后開始出廠標校,標校完成后將標校值存入EEPROM。需注意的是,實際硬件操作中,EEPROM的讀、寫都需要幾毫秒的時間,因此程序中對時間有要求的地方要考慮到。
本文開發(fā)的應力變送器目前主要應用在張緊系統(tǒng)中測試張力,產(chǎn)品設計為分立式結(jié)構。應變電橋封裝在傳感頭中,信號放大處理部分在另外一個外殼中,現(xiàn)場安裝時,信號放大處理顯示部分可放易見易觸摸的地方。傳感頭的安裝見圖11,傳感頭的兩側(cè)有兩個圓孔,通過這兩個空將應力部件串聯(lián)在需測拉力鋼纜中間,從而可測試出所測拉力。
本文主要介紹了基于CAN總線的應力變送器軟硬件設計,該應力變送器硬件設計實用可靠,軟件設計考慮了抗干擾措施;并且具有液晶顯示,CAN總線、頻率信號輸出,接口豐富,可配接多類系統(tǒng),在用戶中取得了良好的反響。
[1]劉迎春,葉湘濱.傳感器原理[M].國防科技大學出版社,2004,2.
[2]王建新,任勇峰,焦新泉.儀表放大器AD623在數(shù)采系統(tǒng)中的應用[J].微計算機信息.2007,23(3-1).
[3]謝兵,楊帆,吳紹輝.增大CAN總線傳輸距離的設計方案[J].工礦自動化,2010(5).
[4]程德福,林君.智能儀器[M].機械工業(yè)出版社,2009.
[5]李滿昌,石偉,孫健等.基于以太網(wǎng)的高速數(shù)據(jù)采集系統(tǒng)設計[J].工程與實驗,2010,50(2):47-48.