• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ARM11的粉體動態(tài)定量稱重控制器設(shè)計

      2014-03-26 00:58:35牛群峰張治功惠延波
      儀表技術(shù)與傳感器 2014年12期
      關(guān)鍵詞:驅(qū)動程序內(nèi)核觸摸屏

      王 莉,牛群峰,張治功,惠延波

      (河南工業(yè)大學(xué)電氣工程學(xué)院,河南鄭州 450001)

      0 引言

      近年來嵌入式技術(shù)得到了迅猛發(fā)展,嵌入式微處理器具有體積小、低功耗、軟硬件可裁剪、成本低等優(yōu)點,嵌入式軟件系統(tǒng)主要是針對操作系統(tǒng)而言,不同場合和應(yīng)用領(lǐng)域可以選擇不同的操作系統(tǒng),常見的有嵌入式Linux系統(tǒng)、Widonws CE、實時系統(tǒng)VxWorks和μC/OS-II等。Linux系統(tǒng)屬于開源系統(tǒng),內(nèi)核可以任意裁剪移植,幾乎支持所有的硬件驅(qū)動程序和網(wǎng)絡(luò)協(xié)議,有很好的應(yīng)用性。文中基于嵌入式控制技術(shù),采用ARM11嵌入式控制器,以Linux為軟件平臺設(shè)計了一種粉體動態(tài)定量稱重控制器,實現(xiàn)油脂加工企業(yè)豆粕等粉體物料參數(shù)設(shè)置、在線動態(tài)定量稱重和遠(yuǎn)程稱重過程監(jiān)控管理等功能。

      1 系統(tǒng)總體設(shè)計

      系統(tǒng)采用嵌入式微處理器作為現(xiàn)場稱重控制器的控制核心,總體方案結(jié)構(gòu)框圖如圖1所示。整個系統(tǒng)由稱重傳感器、智能儀表和執(zhí)行秤體部件組成。智能儀表包括嵌入式微處理器、觸摸屏、信號調(diào)理電路、通訊接口等外圍擴展模塊;執(zhí)行秤體部件包括氣缸、快中慢放料斗、稱重斗等部件。

      圖1 總體方案結(jié)構(gòu)框圖

      2 控制器硬件結(jié)構(gòu)設(shè)計

      系統(tǒng)控制器控制核心采用ARM11芯片S3C6410。S3C6410處理器采用ARMv6架構(gòu),是一個16/32位RISC微處理器,有豐富的內(nèi)部資源,采用64/32位內(nèi)部總線架構(gòu),64/32位內(nèi)部總線結(jié)構(gòu)由AXI、AHB和APB總線組成,存儲器系統(tǒng)具有雙重外部存儲器端口、DRAM和FLASH/ROM/DRAM端口。S3C6410包括很多片上功能外設(shè):Camera接口,TFT24bit真彩色LCD控制器,系統(tǒng)管理單元(電源時鐘等),4通道的UART,32通道的DMA,4通道定時器,通用I/O口,I2S總線,I2C總線,USB Host,高速USB OTG,SD Host 和高速MMC卡接口以及內(nèi)部PLL時鐘發(fā)生器,處理器方便外部擴展。

      (1)處理器主模塊:系統(tǒng)電源模塊采用LTC3406,ARM Core的供電電壓為1.1 V,DDR為1.8 V.復(fù)位電路采用IMP811TEUS芯片,它可以提供穩(wěn)定的觸發(fā)信號,將機械按鍵轉(zhuǎn)化為復(fù)位信號,為處理器提供復(fù)位重啟信號。S3C6410內(nèi)部有3個PLL,分別是APLL、MPLL、EPLL.經(jīng)過分頻可以得到各種相應(yīng)的時鐘源,如Nand時鐘發(fā)生器、MFC時鐘發(fā)生器,用于UART和SPI的時鐘發(fā)生器等。文中采用12 MHz晶振。

      (2)內(nèi)存與外部存儲電路:S3C6410內(nèi)部有DRAM控制器,支持多種內(nèi)存??梢灾С諷DR SDRAM,動態(tài)SDR SDRAM,DDR SDRAM 和動態(tài)DDR SDRAM。文中采用動態(tài)DDR SDRAM,型號為K4X51163PG-FGC6。

      (3)外部存儲Nand電路:相對于Nor Flash來說,Nand Flash的價格更便宜,所以一般都從Nand中啟動引導(dǎo)系統(tǒng),然后在內(nèi)存上執(zhí)行主程序代碼。S3C6410支持Nand引導(dǎo),硬件實現(xiàn)了將Nand Flash 中前8 K的內(nèi)容搬到內(nèi)存中執(zhí)行,然后在跳到內(nèi)存中執(zhí)行。所以寫程序時,前面8 K的程序要寫成引導(dǎo)程序。文中選用Nand Flash 為K9F2G08,大小為256 M,能夠存儲較大的程序與數(shù)據(jù)。

      (4)信號調(diào)理模塊:粉體動態(tài)定量稱重控制器采用多個稱重傳感器分布安裝在稱重斗上,控制器采用托利多的拉壓式S型傳感器,信號放大電路設(shè)計中AD588BQ芯片產(chǎn)生精準(zhǔn)的10.000 V橋激勵電壓,OP213放大器滿足稱重傳感器的小范圍輸入,因此減小非線性誤差。

      (5)A/D轉(zhuǎn)換器:經(jīng)過調(diào)理后的傳感器信號送入S3C6410自帶的A/D轉(zhuǎn)換模塊,進行模數(shù)轉(zhuǎn)換。S3C6410采用8通道復(fù)用的ADC轉(zhuǎn)換,10位分辨率,最大采樣頻率1 MHz,最大轉(zhuǎn)換率為可達500 kSPS.

      (6)LCD顯示與觸摸屏:系統(tǒng)采用的LCD液晶顯示屏為4.3英寸,分辨率為640×480。S3C6410有專用的LCD控制器,控制器的數(shù)據(jù)端口和控制信號在GPI管腳和GPJ管腳上復(fù)用管腳,將GPICON和GPJCON控制寄存器設(shè)為10,驅(qū)動接口有4種,采用RGB接口。

      (7)通訊模塊:S3C6410提供有4個獨立的串行UART端口。每個端口可以通過中斷或DMA的方式與CPU進行數(shù)據(jù)交換。串行通信接口標(biāo)準(zhǔn)是RS-232C,通過串行通信能夠使儀表實現(xiàn)通信同時完成組網(wǎng)。通過MAX232和SP3232都能夠?qū)崿F(xiàn)電平轉(zhuǎn)換。對于帶有以太網(wǎng)接口的智能儀表可以在工業(yè)現(xiàn)場組網(wǎng)成Ethernet總線,也可以接入Internet網(wǎng)絡(luò)。S3C6410內(nèi)部沒有集成以太網(wǎng)控制器,系統(tǒng)采用DM9000以太網(wǎng)控制器。

      3 軟件設(shè)計

      控制器整體軟件設(shè)計包括Linux系統(tǒng)搭建、嵌入式驅(qū)動程序設(shè)計、觸摸屏圖形界面設(shè)計、應(yīng)用程序設(shè)計和算法研究實現(xiàn)等[3]。

      3.1 Linux系統(tǒng)搭建

      u-boot移植:BootLoader就是啟動加載程序,因為CPU上電啟動以后要進行一部分硬件的初始化等操作,再來引導(dǎo)Linux操作系統(tǒng)啟動。u-boot是BootLoader的一種,它可以支持多種處理器、多種操作系統(tǒng)。u-boot要完成的主要功能有:初始化SDRAM(DDR),從Flash上讀出內(nèi)核,初始化時鐘,關(guān)看門狗,硬件相關(guān)的初始化(如網(wǎng)卡和串口)等。控制器用到的開發(fā)環(huán)境與工具有Ubuntu10.10、交叉編譯器arm-linux-gcc-4.3.2、u-boot1.1.6源碼。在Linux服務(wù)器上安裝交叉編譯工具鏈arm-linux-gcc-4.3.2,用解壓縮命令將其解壓到/usr/local/arm目錄下,然后就可以使用arm-linux-gcc命令來編譯程序。編譯u-boot時,首先要下載u-boot1.1.6源碼,然后放到Ubuntu10.10服務(wù)器上解壓縮,最后配置之后用arm-linux-gcc命令編譯。編譯之后會生成system.map、u-boot elf/u-boot.bin、和u-boot.srec4個文件,此時將生成的u-boot.bin二進制文件下載到Nand中。u-boot啟動之后可以通過串口觀察到啟動信息如圖2所示。

      圖2 u-boot移植后啟動界面

      Linux內(nèi)核的移植與裁剪:u-boot啟動之后會加載內(nèi)核鏡像,加載之后就將控制權(quán)交給內(nèi)核。但是對于啟動的過程來說內(nèi)核最終要掛接根文件系統(tǒng),內(nèi)核也需要對源碼進行修改配置、編譯之后才能使用。移植前下載Linux內(nèi)核,文中采用的版本是2.6.36.2。將下載好的內(nèi)核源碼Linux2.6.36.2.tar.gz放到Linux服務(wù)器Ubuntu10.10上,解壓縮。然后完成修改頂層的Makefile文件,配置內(nèi)核,生成內(nèi)核鏡像文件,啟動內(nèi)核等工作。啟動界面見圖3。

      圖3 u-boot移植后啟動界面

      制作根文件系統(tǒng):Linux的根文件系統(tǒng)存放系統(tǒng)啟動所必須的文件,如內(nèi)核的鏡像文件、內(nèi)核啟動后要運行的第一個程序init、給用戶提供界面的shell、以及應(yīng)用程序所依賴的庫,這些集合統(tǒng)稱為根文件系統(tǒng)。Linux文件系統(tǒng)的選擇與硬件相關(guān),因為儀表中需要大量的數(shù)據(jù)存儲,所以使用Nand Flash存儲器,而YAFFS格式的文件系統(tǒng)最合適Nand Flash。確定制作1個YAFFS文件系統(tǒng)作為根文件系統(tǒng)。制作并移植根文件系統(tǒng)的步驟包括創(chuàng)建目錄、創(chuàng)建節(jié)點、安裝glibc庫、制作鏡像文件等,最后燒寫到nand相應(yīng)的分區(qū)。根文件系統(tǒng)移植后界面如圖4所示。

      圖4 根文件系統(tǒng)移植后界面

      3.2 嵌入式驅(qū)動程序設(shè)計

      S3C6410的A/D轉(zhuǎn)換器AIN0-AIN3為模數(shù)轉(zhuǎn)換正常通道,AIN4-AIN7為觸摸屏通道。A/D轉(zhuǎn)換的驅(qū)動程序是該控制器的核心驅(qū)動,關(guān)系到儀表采集數(shù)據(jù)的精度。該控制器A/D驅(qū)動是字符設(shè)備驅(qū)動,包括cdev結(jié)構(gòu)體創(chuàng)建設(shè)備號、定義file_operations結(jié)構(gòu)體、填充file_operations結(jié)構(gòu)中的成員函數(shù)、填寫注冊和卸載驅(qū)動模塊函數(shù)、模塊聲明加載與卸載等步驟,驅(qū)動程序編寫完成之后用make module命令編譯成模塊生成1個.KO文件,然后將這個.KO文件放到服務(wù)器上下載到文件系統(tǒng)中,最后用insmod命令加載驅(qū)動,之后應(yīng)用程序就能夠調(diào)用驅(qū)動讀取AD轉(zhuǎn)換的數(shù)據(jù)。

      觸摸屏的驅(qū)動與A/D轉(zhuǎn)換驅(qū)動的結(jié)構(gòu)相同,只要將A/D轉(zhuǎn)換的模式設(shè)置成自動X|Y位置轉(zhuǎn)換模式即可。需要注意的是觸摸屏與A/D共用一個中斷,同時使用時,在A/D轉(zhuǎn)化時會導(dǎo)致觸摸屏不能使用,解決的方法是在ADC驅(qū)動里,開始A/D轉(zhuǎn)換前屏蔽觸摸屏中斷,轉(zhuǎn)換完后再開中斷。

      Linux為顯示設(shè)備專門提供了一類驅(qū)動程序,叫幀緩沖(FrameBuffer)設(shè)備驅(qū)動。實際操作中用戶只要在顯示緩沖中填寫要顯示的數(shù)據(jù),幀緩沖驅(qū)動所做的工作主要是:編寫初始化函數(shù)初始化LCD控制器,然后分配一片緩沖區(qū)空間將起始地址給LCD控制器,最后注冊fb_info結(jié)構(gòu)體。填充fb_info結(jié)構(gòu)體中函數(shù)指針fb_ops的結(jié)構(gòu)成員。

      3.3 嵌入式應(yīng)用程序設(shè)計

      系統(tǒng)整個工作流程:秤體模式、空中量等參數(shù)設(shè)置后,控制快中慢放料斗實現(xiàn)快、中、慢三級給料,將稱重傳感器的實時信號經(jīng)信號調(diào)理之后送給微處理器,微處理器根據(jù)傳感器數(shù)據(jù),當(dāng)物料達到設(shè)定值時關(guān)閉上面的放料斗,稱重斗卸料,如是包裝秤,控制夾住包裝袋,包裝完成后松袋,完成稱量工作。參數(shù)設(shè)置、稱量結(jié)果等數(shù)據(jù)在觸摸屏顯示,工作過程參數(shù)和數(shù)據(jù)可以通過通訊接口傳給上位機,也可以通過打印口輸出。整個工作過程根據(jù)控制程序和算法,實現(xiàn)粉體物料參數(shù)設(shè)置、在線動態(tài)定量稱重和遠(yuǎn)程稱重過程監(jiān)控管理等功能,在保證稱重精度的前提下,提高了稱重速度??刂破鬈浖鞒虉D如圖5所示。

      圖5 控制器軟件流程圖

      3.4 數(shù)據(jù)濾波和空中量自動修正算法

      該控制器的信號波動具有周期性,且在拐角地方具有突變性,經(jīng)過分析各種濾波算法的優(yōu)缺點后,采用滑動平均濾波算法對干擾有良好的抑制。

      控制器采用三級給料裝置,以大幅減少落料沖擊力和空中落料誤差引起的計量誤差。儀表最后顯示的稱重數(shù)值為停慢進、關(guān)進料門后,停慢進時刻實測數(shù)值加上空中落料之和。此外,設(shè)計了一種空中量自動修正算法,使控制器進行幾次稱重計量后,誤差精確地控制在要求范圍之內(nèi)。

      算法每進行一組稱重計量,實時迭代稱重誤差,修正空中量,使誤差快速收斂到系統(tǒng)滿足的最小誤差值,迭代結(jié)束。空中量初始值、修正次數(shù)、修正幅度進行初始化設(shè)置。

      算法的具體實現(xiàn):根據(jù)用戶設(shè)定的修正次數(shù)CORRECT_NU,如CORRECT_NU=4,那么每當(dāng)稱量4次為一組,將其每次誤差值(實際的重量減去設(shè)定值,有正有負(fù))加和平均。然后根據(jù)設(shè)定的修正幅度(小于修正的次數(shù))SCOPE_NU得出修正后的誤差值A(chǔ)F_COR= XSCOPE_NU/CORRECT_NU。最后將此誤差值作為下一組稱重計量的空中量修正值,作為新的空中量,進行下一組稱量,誤差達到設(shè)定值結(jié)束迭代。

      空中量自動修正算法子程序:

      #define CORRECT_NU 4

      #define SCOPE_NU 2

      double modif_aerialvalue(double set_value,double Aerial_value,double real_value)

      {

      static double error[CORRECT_NU];

      static double temp,

      double AF_CORR;

      static i=1;

      error[i-1] = real_value- set_value;

      temp += error[i-1];

      if (i== CORRECT_NU)

      {

      AF_CORR= temp*SCOPE_NU/CORRECT_NU;

      Aerial_value += AF_CORR;

      return Aerial_value;

      break;

      }

      }

      4 結(jié)束語

      文中設(shè)計了一種基于ARM11的粉體動態(tài)定量稱重控制器。詳細(xì)介紹了該儀器的硬件組成和軟件設(shè)計。該儀器采用ARM11嵌入式控制器,以Linux為軟件平臺完成了A/D轉(zhuǎn)換,觸摸屏等驅(qū)動程序及應(yīng)用程序的編寫,研究數(shù)據(jù)濾波和稱重誤差修正算法以提高稱重精度,實現(xiàn)油脂加工企業(yè)豆粕等粉體物料參數(shù)設(shè)置、在線動態(tài)定量稱重和遠(yuǎn)程稱重過程監(jiān)控管理等功能。該儀器具有體積小、精度高、功能可擴展等優(yōu)點,為粉體物料動態(tài)計量手段提供一種有效途徑。該儀器可根據(jù)不同行業(yè)需求,在軟件上稍作更改即可進行功能擴充或修改,應(yīng)用于加工過程中需要動態(tài)定量稱重的許多行業(yè),應(yīng)用前景廣泛。

      參考文獻:

      [1] 牛群峰,王莉.基于ARM9的糧食在線計量智能控制系統(tǒng).儀表技術(shù)與傳感器.2011 (12):70-72.

      [2] 趙廣平,孫雯萍,孫建軍.電子稱重技術(shù)現(xiàn)狀及發(fā)展趨勢.儀表技術(shù)與傳感器,2007 (7):76-77.

      [3] 張治功.嵌入式粉體計量管理控制技術(shù)研究:[學(xué)位論文].鄭州:河南工業(yè)大學(xué),2013.

      猜你喜歡
      驅(qū)動程序內(nèi)核觸摸屏
      萬物皆可IP的時代,我們當(dāng)夯實的IP內(nèi)核是什么?
      強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      PLC和觸摸屏在衛(wèi)生間控制系統(tǒng)的應(yīng)用
      基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
      Linux內(nèi)核mmap保護機制研究
      皮膚“長”出觸摸屏
      投射式多點觸控電容觸摸屏
      河南科技(2014年12期)2014-02-27 14:10:32
      觸摸屏項目移植在自動化系統(tǒng)升級中的應(yīng)用
      驅(qū)動程序更新與推薦
      驅(qū)動程序更新與推薦
      正阳县| 桂林市| 茶陵县| 巴林左旗| 乐清市| 香格里拉县| 健康| 贺州市| 澎湖县| 长岛县| 察雅县| 瑞安市| 乐至县| 芜湖县| 屏山县| 梁平县| 陇南市| 新干县| 凉山| 北辰区| 湄潭县| 巫溪县| 永靖县| 涡阳县| 临武县| 东乌珠穆沁旗| 曲松县| 锡林郭勒盟| 保康县| 德惠市| 土默特右旗| 宣威市| 密云县| 临漳县| 德保县| 化隆| 阳新县| 巴中市| 泸溪县| 和林格尔县| 玉溪市|