技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 基于ARM的陀螺儀測控系統(tǒng)的設(shè)計與實現(xiàn)

基于ARM的陀螺儀測控系統(tǒng)的設(shè)計與實現(xiàn)

時間:2008-10-08 10:43:00來源:ronggang

導(dǎo)語:?本文設(shè)計了基于ARM核的32位微處理芯片S3C44B0X的陀螺儀測控系統(tǒng),采用 Clinux操作系統(tǒng),完成了對陀螺儀各項參數(shù)的測量、傳輸、顯示、修改和故障報警等功能,實現(xiàn)了對陀螺儀的監(jiān)測和控制
摘 要:本文設(shè)計了基于ARM核的32位微處理芯片S3C44B0X的陀螺儀測控系統(tǒng),采用 Clinux操作系統(tǒng),完成了對陀螺儀各項參數(shù)的測量、傳輸、顯示、修改和故障報警等功能,實現(xiàn)了對陀螺儀的監(jiān)測和控制。 關(guān)鍵詞:測控系統(tǒng);ARM;陀螺儀; Clinux Abstract: A kind of measure and control system in gyro based on 32-bit ARM chip S3C44B0X and Clinux operating system has been designed in this paper. The measure, transfers, display, amending of parameters of gyro, monitoring and alarm function have been accomplished in the design. Through this design, the inspection and control of gyro have been realized. Key words: monitoring system; ARM; gyro; Clinux 1 引言   嵌入式系統(tǒng)是以嵌入式計算機為技術(shù)核心,面向用戶、面向產(chǎn)品、面向應(yīng)用,軟硬件可裁的,適用于對功能、可靠性、成本、體積、功耗等綜合性能有嚴格要求的專用計算機系統(tǒng)。隨著信息技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)已經(jīng)廣泛地運用到科學(xué)研究、工程設(shè)計、軍事技術(shù)等各類產(chǎn)業(yè)和人們的日常生活中。   本設(shè)計選用嵌入式系統(tǒng)作為陀螺儀的測控系統(tǒng),大大提高了系統(tǒng)的精度、靈活性,方便操作以及程序的更改,同時也為以后進一步完善系統(tǒng)功能提供了良好的解決方案。 2 基于ARM的陀螺儀測控系統(tǒng)設(shè)計方案簡介 [align=center] 圖1 系統(tǒng)設(shè)計方案圖[/align]   整個測控系統(tǒng)分為兩大硬件模塊(如圖1所示),即基于ARM的參數(shù)測量與控制模塊以及基于ARM的人機交互模塊。參數(shù)測量與控制模塊實現(xiàn)各種參量值的獲取與校正、根據(jù)測得的陀螺轉(zhuǎn)子頻率數(shù)據(jù)來調(diào)整輸出控制電壓,響應(yīng)用戶輸入控制參數(shù),調(diào)整命令,故障自動診斷。轉(zhuǎn)子頻率在測控系統(tǒng)中需要較高的測量精度,所以采用FPGA進行頻率測量。人機交互模塊實現(xiàn)參數(shù)的顯示、控制參數(shù)的輸入,以及故障報警。人機交互計算機需要接受控制主機送來的系統(tǒng)狀態(tài)信息并以圖形或文本的方式顯示。同時,控制主機根據(jù)人機交互計算機傳送的控制參數(shù),對系統(tǒng)進行調(diào)整。兩計算機之間的通信由串行通信接口完成。嵌入式操作系統(tǒng) Clinux為高級應(yīng)用程序提供了一個高性能的軟件運行平臺。 3 系統(tǒng)硬件設(shè)計   本設(shè)計的硬件平臺采用S3C44B0X為核心的嵌入式系統(tǒng)。S3C44B0X是以ARM7為內(nèi)核的32位嵌入式處理器,其內(nèi)部有8路10-bit A/D、71pin通用輸入輸出端口、2個異步串口、片內(nèi)日歷、片內(nèi)16位PWM定時器、看門狗定時器、LCD控制器、JTAG調(diào)試接口。再配以外圍的存儲器、電源等芯片,就構(gòu)成了一個完整的嵌入式系統(tǒng)。   本系統(tǒng)需測量的陀螺參數(shù)主要包括陀螺轉(zhuǎn)子的頻率、電壓電流信號、陀螺內(nèi)部的溫度。   由于陀螺轉(zhuǎn)子頻率的穩(wěn)定性影響陀螺精度,因此,使用芯片XC3S200作為頻率測量電路的核心器件來專門完成對轉(zhuǎn)子頻率的精確測量。XC3S200是由XILINX公司生產(chǎn)的FPGA 芯片,具有高精度、穩(wěn)定等優(yōu)點,符合系統(tǒng)設(shè)計的要求。   電壓電流參數(shù)的測量利用S3C44B0X的8路10位精度片上A/D采集到CPU。電壓信號是雙極性信號,經(jīng)過運算放大器OP07限幅、電位平移得到符合A/D采集要求的0~2.5V電壓的單極性信號。電流信號首先經(jīng)過霍爾敏感元件轉(zhuǎn)換為與電流成正比的電壓,再經(jīng)運算放大電路送到模數(shù)轉(zhuǎn)換器。陀螺內(nèi)部溫度的測量由電橋放大電路實現(xiàn)。電橋的雙端輸出接入放大電路進行放大,得到輸出電壓,然后同樣輸入到S3C44B0X自帶的A/D轉(zhuǎn)換器。   人機交互模塊包括S3C44B0X微處理器、存儲器、串行通信接口、分辨率為320×240的液晶顯示器、帶有狀態(tài)指示燈的6×6小鍵盤、蜂鳴器幾個部分。通過該模塊可監(jiān)測陀螺運行狀態(tài),可隨時進行控制參數(shù)的調(diào)整等。   根據(jù)系統(tǒng)設(shè)計的要求,控制主機與人機交互計算機之間相距有一定的距離,為保證兩計算機之間保持數(shù)據(jù)可靠和電路簡單,因此采用串口來實現(xiàn)兩計算機之間的數(shù)據(jù)交換。串口電路由串口控制器、RS232串行通信轉(zhuǎn)接芯片MAX232、串口接插件三個部分組成。 4 系統(tǒng)軟件設(shè)計   系統(tǒng)軟件包括操作系統(tǒng)自帶的設(shè)備驅(qū)動程序、操作系統(tǒng)運行環(huán)境、根據(jù)用戶需要自定義的設(shè)備驅(qū)動程序、封裝了底層驅(qū)動的中間層接口程序、高級應(yīng)用程序幾個部分。在軟件設(shè)計時,對整個應(yīng)用劃分為不同的層次,分別在驅(qū)動層、中間層、高級應(yīng)用層程序中實現(xiàn)。   4.1 操作系統(tǒng)   本系統(tǒng)的操作系統(tǒng)采用嵌入式操作系統(tǒng) Clinux。 Clinux是從Linux內(nèi)核派生而來,在標準的Linux基礎(chǔ)上進行了適當(dāng)?shù)牟眉艉蛢?yōu)化。 Clinux具有易配置、體積小、穩(wěn)定、良好的移植性、完備的對各種文件系統(tǒng)的支持以及支持常用嵌入式芯片的驅(qū)動、標準豐富的API等優(yōu)點。在此基礎(chǔ)之上開發(fā)自己的應(yīng)用程序,能進一步提高效率,并具有很好的可移植性?;谝陨隙喾N優(yōu)點,根據(jù)本系統(tǒng)的實際情況,選用 Clinux作為操作系統(tǒng)是比較合適的。   4.2 設(shè)備驅(qū)動   在本系統(tǒng)的設(shè)計開發(fā)過程中,除了操作系統(tǒng)自帶的設(shè)備驅(qū)動程序以外,為了滿足系統(tǒng)的設(shè)計要求,需要對系統(tǒng)新添加外部設(shè)備,編寫自定義的設(shè)備驅(qū)動程序,以使設(shè)備得到操作系統(tǒng)的支持。在本系統(tǒng)中,對A/D、D/A、串行口這些字符設(shè)備編寫了自定義的驅(qū)動程序。   設(shè)備驅(qū)動程序是操作系統(tǒng)和硬件設(shè)備之間的接口,內(nèi)核用這個接口請求驅(qū)動程序控制設(shè)備的I/O操作。在 Clinux中的設(shè)備管理應(yīng)用了設(shè)備文件這個概念來統(tǒng)一設(shè)備的訪問接口,因此用戶對任何一個設(shè)備的訪問就如同普通文件一樣,用戶可以打開和關(guān)閉設(shè)備文件,也可以進行數(shù)據(jù)的讀、寫等操作。   設(shè)備驅(qū)動程序的接口看起來和文件系統(tǒng)的接口是一樣的,即結(jié)構(gòu)file_operations{}。對于字符設(shè)備來說,file_operations{}就是唯一的函數(shù)接口。在編寫自定義的設(shè)備驅(qū)動程序的時候,只需定義對自己有意義的接口函數(shù)來操作設(shè)備。以本系統(tǒng)中自定義的A/D設(shè)備驅(qū)動程序為例,file_operations{}的基本結(jié)構(gòu)如下:   struct file_operations ADC_fops = {   llseek: NULL, //lseek   read: NULL, //read   write: NULL, //write   readdir: NULL, //readdir   poll: NULL, //poll   ioctl: ADC_ioctl, //ioctl   mmap: NULL, //mmap   open: ADC_open, //open   release: NULL, //release   fsync: NULL, //fsync   fasync: NULL, //fasync   };   當(dāng)系統(tǒng)調(diào)用這些操作時,將自動地使用file_operations{}結(jié)構(gòu)中對應(yīng)的函數(shù),來實現(xiàn)對A/D設(shè)備的open、ioctl等具體操作。   除此之外,編寫設(shè)備驅(qū)動程序的另一個重要方面就是驅(qū)動程序的初始化。   int init_ADC(void)  ?。?   int result;   result = register_chrdev(252,"ADC",& ADC _fops);   if(result<0) printk("(ERROR):Register ADC device failed!\n\n\n");   printk("(Devices):Register ADC device succeed!\n");   …  ?。?   函數(shù)register_chrdev()是對字符設(shè)備進行注冊,之后就可以進行正常的設(shè)備訪問了。   4.3 封裝了底層驅(qū)動的中間層接口程序   封裝了通訊協(xié)議的串行通信模塊主要實現(xiàn)兩計算機之間的數(shù)據(jù)交換。該模塊建立在操作系統(tǒng)驅(qū)動程序的基礎(chǔ)上,進一步采用多進程技術(shù),將從串口驅(qū)動接收到的數(shù)據(jù)緩沖,切割成自定義的協(xié)議封裝形式,最后組裝成高級應(yīng)用程序方便使用的格式,為高級應(yīng)用程序提供應(yīng)用程序接口函數(shù)(API)。串口模塊程序流程如圖2所示。 [align=center] 圖2 串口模塊程序流程[/align]   串口通信模塊的數(shù)據(jù)傳輸以數(shù)據(jù)幀的形式組合包裝發(fā)送和接收,幀的定義就是發(fā)送端和接收端的數(shù)據(jù)格式,保證接收端準確無誤地檢索有效數(shù)據(jù)。   Struct UartDataFrame   {   Char StartFlag;   Char Index; //數(shù)據(jù)幀序號   Char Dealed; //該組數(shù)據(jù)是否已經(jīng)處理(已發(fā)送或已解釋)   Char Type; //幀數(shù)據(jù)類型   char Data[DATA_CONTENT_SIZE]; //原始數(shù)據(jù)   char Reserved;   char EndFlag;  ?。?   該串行口底層收發(fā)封裝程序模塊使用了三級環(huán)形緩沖區(qū):第一級用于保存每次接收到的單個字符;第二級緩沖區(qū)是以字節(jié)為組成單元的環(huán)形緩沖區(qū),第二級將第一級緩沖區(qū)接收到的數(shù)據(jù)按照接收的先后次序放置;第三級將第二級緩沖區(qū)中的數(shù)據(jù)切割成幀并存放,而且還提供對幀數(shù)據(jù)進行訪問的配套函數(shù)。   串口通信在系統(tǒng)中以獨立的模塊出現(xiàn),串口API為高級應(yīng)用程序提供了一個清晰的功能接口,提供給用戶的函數(shù)有串口初始化、提取數(shù)據(jù)和發(fā)送數(shù)據(jù)三個函數(shù)。   高級應(yīng)用程序在初始化的時候調(diào)用初始化函數(shù)初始化串口模塊,使串口處于工作狀態(tài),串口模塊將接收到的數(shù)據(jù)組合整理,最后存放在一個緩沖區(qū)里,高級應(yīng)用程序調(diào)用數(shù)據(jù)提取函數(shù),則存儲在緩沖區(qū)里的數(shù)據(jù)被依次提取出來,供高級應(yīng)用程序處理。相應(yīng)地,高級應(yīng)用程序填充struct UartDataFrame結(jié)構(gòu)變量的各域值,把該結(jié)構(gòu)體變量的指針傳遞給串口通信模塊,串口通信模塊會把需要發(fā)送的數(shù)據(jù)緩存起來,排隊先后發(fā)送出去。   4.4 高級應(yīng)用程序   4.4.1控制主機的高級應(yīng)用程序   控制主機主要完成參數(shù)的測量與陀螺的控制。由于需要對各種設(shè)備進行管理,實現(xiàn)較為復(fù)雜的邏輯控制功能,高級應(yīng)用程序的設(shè)計借鑒了面向?qū)ο蟮某绦蛟O(shè)計方法。以高級應(yīng)用層的模塊功能為基礎(chǔ)抽象為程序的對象,每個對象擁有自己的資源,并可以完成某一模塊的功能,利用對象間的通信實現(xiàn)模塊間的協(xié)同工作。程序中定義了以下幾個類:   CLASS_Freq_Measurement //頻率測量模塊   CLASS_DAC_Module //D/A轉(zhuǎn)換模塊   CLASS_Control_Module //控制模塊   CLASS_System_State_Module //系統(tǒng)狀態(tài)模塊   CLASS_Alert_Module //報警模塊   高級應(yīng)用程序以控制算法為核心,多個任務(wù)為控制服務(wù),其中串口數(shù)據(jù)通信模塊采用多進程技術(shù)設(shè)計,以保證通信及時暢通。系統(tǒng)內(nèi)核定時對各個通道分時測量,將測得的數(shù)據(jù)通過回調(diào)函數(shù)傳遞給高級應(yīng)用程序。高級應(yīng)用程序只需進行簡單操作就可提取數(shù)據(jù)并進行相應(yīng)的后續(xù)操作。   4.4.2基于Microwindows的圖形界面高級應(yīng)用程序的實現(xiàn)   人機交互模塊的高級應(yīng)用程序是基于Microwindows的圖形界面高級應(yīng)用程序。Microwindows是一個開放源碼的嵌入式GUI軟件,目的是把圖形視窗環(huán)境引入到運行Linux的小型平臺上。在利用更少的RAM和文件存儲空間的情況下,允許設(shè)計者輕松加入各種顯示設(shè)備、鼠標、觸摸屏和鍵盤等;應(yīng)用程序代碼可用C語言實現(xiàn),可移植性非常好;支持基于ARM內(nèi)核的處理器芯片。   基于Microwindows的高級應(yīng)用程序,其程序的基本結(jié)構(gòu)是初始化、創(chuàng)建窗口與資源、進入消息循環(huán)。   在本系統(tǒng)的圖形界面高級應(yīng)用程序中,在消息循環(huán)里面有從消息隊列里面提取消息的函數(shù)PeekMessage(),串口接收緩沖區(qū)查詢函數(shù)以及鍵盤緩沖區(qū)查詢函數(shù)。應(yīng)用程序初始化之后,就反復(fù)執(zhí)行這三個函數(shù),獲得消息就執(zhí)行消息處理函數(shù)。 5 結(jié)論   本文的創(chuàng)新點在于研究和設(shè)計了一種基于ARM的陀螺儀測控系統(tǒng),該系統(tǒng)在以S3C44B0X微處理器和 Clinux操作系統(tǒng)組成的平臺上完成了對陀螺儀各項參數(shù)的測量、傳輸、顯示、修改和故障報警等功能,實現(xiàn)了對陀螺儀的監(jiān)測和控制,同時本系統(tǒng)具有良好的人機交互界面,便于進行監(jiān)視和操作,也為下一步系統(tǒng)功能的完善和擴展提供了良好的解決方案。本系統(tǒng)經(jīng)過了長期連續(xù)運行實驗,工作正常,達到了設(shè)計的要求。 參考文獻:   [1]李善平、陳文智等,《LINUX內(nèi)核指導(dǎo)》,杭州:浙江大學(xué)出版社,2002   [2] Samsung公司,《S3C44B0 Microprocessor——Product overview》   [3]周立功、陳明計、陳渝等,《ARM嵌入式Linux系統(tǒng)構(gòu)建與驅(qū)動開發(fā)范例》,北京:北京航空航天大學(xué)出版社,2006   [4] (美)Charlie Calvert,《21天學(xué)通Windows編程》,北京:電子工業(yè)出版社,1995   [5]張進、王永梁,基于ARM7的嵌入式系統(tǒng)中頻率數(shù)據(jù)獲取與共享,[J]微計算機信息,No.11: 82-83,2006

標簽:

點贊

分享到:

上一篇:沸騰干燥設(shè)備的防爆安全性淺析

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號