目前,業(yè)內對傾角的測量多是基于MEMS的加速度傳感器,SCA100T是由芬蘭VTI公司推出,采用三維MEMS技術開發(fā)的一款高精度雙軸傾角傳感器,可同時測量相對于水平面的傾斜和俯仰角度,具有溫度補償功能。本文以塔式起重機為應用背景,采用SCA100T傾角傳感器實時采集傾斜信息,檢測塔式起重機支撐架的平衡性能,避免由于其過度傾斜而引發(fā)事故。以SCA100T為基礎設計了一款小巧、靈敏度高的傾角測量系統,分析了SCA100T傾角傳感器測角的原理,給出了系統各個模塊的軟硬件設計方法,同時提供了兩種具有可擴展性的應用方法。
1 整體設計
圖1所示為本系統的整體結構框圖。該系統采用ATmega8單片機控制SCA100T傾角傳感器實時檢測平臺的傾角變化,將傳感器輸出的數字量進行換算后,轉換為實際的傾角值。用戶可以根據需要設置警界傾角值和預定平臺水平位置,傾角信息可通過LCD實時顯示或通過串口輸出到上層控制器中。當傾角信息超過預置的警界傾角值時,系統開始報警,表現為蜂鳴器報警和LED燈閃爍。
系統根據輸出方式的不同分為兩種應用方式:一種是作為獨立系統使用,固定在待測平臺上;另一種是將該系統作為一個傾角采集模塊,掛接在其他電路中使用。前者采用LCD1602實時顯示傾角信息,采用串口超級終端預設傾角警界值和水平位置;后者通過串口輸出傾角信息,允許軟件編程通過發(fā)送串口命令進行配置。配置信息均保存在ATmega8單片機內部的EEPROM中。
2 傾角測量原理
本文選用的SCA100T的測量范圍為±30°,其內部包含硅電容感應元件、EEPROM存儲器、信號調理電路、A/D轉換器、溫度傳感器和SPI傳輸接口等,SCA100T功能框圖如圖2所示。該傳感器具有X、Y兩個通道,分別用來測量傾斜和俯仰的加速度,每個通道具有自測試系統,可內部產生一個靜電力來校驗全部的信號通道。信號輸出有SPI數字信號輸出和模擬電壓信號輸出兩種方式,同時可輸出溫度信息進行溫度補償。
SCA100T的測角原理為:通過測量靜態(tài)重力加速度的變化,將其轉換成傾角變化。SCA100T的硅電容感應元件由3層硅片構成,形成立體結構,當發(fā)生傾斜時,中間質量片會傾向某一側,從而使兩側的電容發(fā)生變化。通過電壓值可反映相應的加速度值,進而可計算角度值。圖3所示分別為X軸與Y軸的傾角變化情況(X/Y是從傾斜方向來劃分的),以X軸為例,其加速度值與重力加速度之間的關系為:
Ax=g·sina→α=arcsin(Ax/g)
其中,Ax表示X軸測出的加速度值,g表示重力加速度值,α為X軸傾角。
3 系統硬件設計
系統的整體硬件電路如圖4所示。系統采用SCA100T的SPI接口來讀取輸出信息,可避免額外的A/D采樣。由于ATmega8具有1路SPI中斷,因此可直接將傳感器作為從器件接到單片機的SPI接口上。系統通過控制三極管的開通與關閉來控制蜂鳴器和LED指示燈的導通與關閉,從而達到報警的功能。把ATmega 8單片機的PD2引腳接到三極管的基極,正常工作時將PD2置低電平。當發(fā)生報警時,將PD2置高電平,此時三極管導通,蜂鳴器發(fā)出響聲,LED指示燈變亮。
系統采用LCD1602字符型液晶模塊來顯示傾角信息,該模塊可同時顯示兩行字符,分別為X軸與Y軸傾角信息。模塊通常采用HD44780芯片具有標準的16條引腳線。對于串口傳輸,系統采用TTL電平和RS232兩種輸出方式,單片機輸出的TTL,電平可經過MAX232芯片轉換后變?yōu)镽S 232信號,通過標準串口線與上位機通信。
采用哪種串口輸出方式取決于工作方式。當采用串口超級終端對系統進行預置時,需要用短路塊將ATmega8單片機的TTL輸出接到MAX232芯片的TTL輸入端;當采用軟件編程方式時,可直接將ATmega8單片機的TTL輸出接到其他電路的TX/RX端,作為其外圍電路使用,此時需要注意波特率的設置。
另外,系統設計了模式選擇功能,將ATmega8單片機的PB0和PB1引出,前者用于選擇是否采用LCD顯示,后者用于選擇是否進入串口超級終端配置模式。正常工作時,這兩個引腳為高電平,表示選擇串口超級終端配置模式,允許通過串口軟件編程;當用短路塊將PB0接地時,表示選擇LCD顯示方式;當PB1接地時,表示進入串口超級終端,并對系統進行預置。
4 系統軟件設計
系統整體的軟件流程如圖5所示。系統上電后,單片機首先對引腳初始化,設置SPI模式,開SPI和串口中斷。如果選擇了LCD顯示功能,還需要對LCD控制引腳進行初始化,顯示初始化信息。然后根據是否選擇了串口超級終端配置功能,決定下一步操作。
當該功能被選中時,系統進入超級終端處理程序,首先向PC端超級終端發(fā)送提示字符,等待用戶選擇和輸入預設數據,收到相關數據后,將其反饋給PC端顯示,同時進行預設處理,并將預設的數值寫入EEPROM。當未選中該功能時,系統進入正常的工作狀態(tài),如果發(fā)生串口中斷,則進入串口處理程序,根據收到串口數據幀是預設命令還是請求數據進行不同的處理。前者則將預設數值寫入EEPROM,若是后者則將傾角信息上傳給上層控制器。如果沒有發(fā)生串口中斷,則主程序通過SPI接口采集傳感器輸出的加速度數字量,并將其轉換為實際傾角信息,判斷傾角是否超過預設角度值。如果超過則開始報警,同時如果選中了LCD顯示功能,還需要通過并口將數值輸出到LCD1602顯示。
4.1傳感器數據采集與計算
對于傳感器采集,當CSB引腳為低電平時有效,允許傳輸數據。數據在傳輸時,高位在前,低位在后。MISO線上的數據在SCK下降沿傳輸,MOSI線上的數據在SCK上升沿傳輸。加速度數據量SPI傳輸時序如圖6所示。單片機首先通過MOSI線向傳感器發(fā)送一個(組)命令,傳感器在接收到完成命令后,開始連續(xù)傳輸數據。這里的命令為8位信息,加速度數據量為11位信息,常用的命令有RDAX(0001,0000)和RDAY(0001,0001),分別表示讀取X/Y軸加速度數據量。
傳感器輸出的X軸與Y軸加速度信息均為11位數字量,其范圍為0~2 048,零度位置對應的數據量為1 024。根據下述公式可將輸出的加速度數字量轉換為實際傾角值:
其中,Dout表示X/Y軸輸出的數字量;Dout@0°表示零度偏移量(即1 024);Sens表示傳感器靈敏度,由VTI廠商提供,對于SCA100T傾角傳感器,該值為1683;α’表示預設的平臺水平角度,默認為0。
4.2 串口命令
圖7為串口與單片機通信的數據幀格式。圖中每幀有16個字節(jié),開始兩個字節(jié)是幀頭(0xFFAA),接著是兩個字節(jié)的數據類型,其類型主要有3種:請求數據(0x0001)、預設警界角度(0x0010)、預設水平角度(0x0011)。然后是10個字節(jié)的數據位,通常數據位為2個4字節(jié)的數據(整形或浮點型),為了避免出現數據對齊問題,在后面加入兩個值為0的字節(jié)。最后是兩個字節(jié)的校驗位,采用CRC-16進行校驗。
數據發(fā)送由上層控制器主動發(fā)送,傾角測量系統被動響應。當上層控制器向單片機發(fā)送數據請求時,其數據位置0;系統收到請求命令后,將傾角信息填入數據位,發(fā)送給上層控制器。當上層控制器向單片機發(fā)送預設警界傾角值時,將預設角度值填入數據位;單片機收到后,將數據寫入EEPROM中并發(fā)送反饋,反饋幀以同樣的類型發(fā)送,但是數據位填入全0。當上層控制器向單片機發(fā)送預設水平角度值時,其操作類似預設警界傾角值,只是類型不同。
4.3 串口超級終端模擬
在WindowsXP或是Windows 2000操作系統下,在開始→菜單\程序\附件\通信下可以看到“超級終端”,這是Windows自帶的通信終端工具。在超級終端里輸入字符時,會自動發(fā)送出去,但是如果沒有反饋,是不會顯示輸入的字符信息的。因此,模擬超級終端需要做兩件事:一是接收用戶在超級終端里輸入的字符;二是將輸入的字符反饋回來,供用戶查看。采用超級終端的方法可以避免用戶直接使用命令操作的過程,所有的命令對用戶來說都是透明的,用戶只需要根據提示信息,輸入相關信息即可完成預設配置工作。圖8所示為預設配置示意圖。
結語
本文以塔式起重機為應用背景設計了這款傾角測量系統,系統在實際應用中工作良好,達到了預期的效果,能實時監(jiān)測塔式起重機支架的平衡性,對預防建筑施工事故起到了重要的作用。系統探討了SCA100T傳感器的使用方法,在設計時考慮了兩種應用方式,對于系統的擴展起到了很好的作用;同時,模擬了串口超級終端來配置系統信息,以此來替代小鍵盤。