亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        CAN總線在塔機(jī)狀態(tài)監(jiān)控系統(tǒng)中的應(yīng)用

        2012-07-07 10:26:42邵國平于浩洋
        關(guān)鍵詞:驅(qū)動程序嵌入式總線

        邵國平,于浩洋

        (黑龍江工程學(xué)院 電子工程系,黑龍江 哈爾濱150050)

        塔機(jī)是一種廣泛應(yīng)用于建筑領(lǐng)域的大型起重設(shè)備,由于各種主客觀原因極易發(fā)生重大事故,從而導(dǎo)致設(shè)備損壞甚至人身傷亡,給社會造成重大損失。本文開發(fā)一個(gè)能夠?qū)λC(jī)進(jìn)行實(shí)時(shí)監(jiān)控的系統(tǒng),控制其在安全限度內(nèi)工作,增加對塔機(jī)的過載保護(hù)。在生產(chǎn)現(xiàn)場中起吊幅度、起吊高度、轉(zhuǎn)角和起重量等實(shí)時(shí)數(shù)據(jù)構(gòu)成了塔機(jī)工作狀態(tài)。在Linux嵌入式系統(tǒng)中基于CAN數(shù)據(jù)總線網(wǎng)絡(luò)采集塔機(jī)工作狀態(tài),保證在不同工況參數(shù)下所能起吊的最大額定起重量、變幅、轉(zhuǎn)角和起吊高度不會超出相應(yīng)不同工況條件下的極限值,完成CAN總線驅(qū)動程序包和有好的圖形化GUI人機(jī)界面。系統(tǒng)功能包括CAN總線通信模塊、圖形界面模塊和數(shù)據(jù)非易失存儲等模塊。塔機(jī)監(jiān)控系統(tǒng)能夠?qū)λC(jī)主要工作參數(shù)進(jìn)行綜合自動顯示與記錄、自動保護(hù),對正常工作、滿載、超載、變幅超限等工作狀態(tài)給出相應(yīng)提示,以保證起重機(jī)械的正常工作。

        1 系統(tǒng)總體結(jié)構(gòu)

        CAN模塊結(jié)構(gòu)如圖1所示。系統(tǒng)中CAN節(jié)點(diǎn)是一個(gè)集中數(shù)據(jù)處理的重要控制節(jié)點(diǎn),主要有兩個(gè)功能:一是作為主處理器與CAN總線的接口,完成基于MCP2510的CAN總線控制器接口的數(shù)據(jù)轉(zhuǎn)換,對智能節(jié)點(diǎn)傳送過來的數(shù)據(jù)信息進(jìn)行緩存。二是負(fù)責(zé)協(xié)調(diào)S3C2440處理器與CAN數(shù)據(jù)采集節(jié)點(diǎn)的通信,以確保各節(jié)點(diǎn)的監(jiān)控?cái)?shù)據(jù)能夠快速、準(zhǔn)確地傳給S3C2440處理器。CAN數(shù)據(jù)采集節(jié)點(diǎn)以MSP430F149為微控制器,外圍模塊帶有CAN總線接口模塊和能夠分別進(jìn)行角度采集、高度采集、壓力采集、長度采集等模塊。主控模塊基于S3C2440處理器的嵌入式系統(tǒng),負(fù)責(zé)對系統(tǒng)各監(jiān)控節(jié)點(diǎn)數(shù)據(jù)的數(shù)據(jù)采集管理、控制命令的發(fā)送及各控制單元動態(tài)參數(shù)和設(shè)備狀態(tài)的實(shí)時(shí)顯示。

        S3C2440X處理器集成了LCD控制器,主要用于傳輸顯示數(shù)據(jù)和產(chǎn)生控制信號,并支持屏幕水平和垂直滾動顯示。數(shù)據(jù)的傳送采用DMA(直接內(nèi)存訪問)方式,以達(dá)到最小的延遲,可以支持多種液晶屏。

        圖1 嵌入式CAN網(wǎng)絡(luò)監(jiān)控系統(tǒng)結(jié)構(gòu)

        主控CAN節(jié)點(diǎn)為智能型模塊,以Linux2.6嵌入式系統(tǒng)為核心,主要負(fù)責(zé)以輪詢方式對現(xiàn)場塔吊工況參數(shù)進(jìn)行監(jiān)測,接收CAN通信控制器MCP2510進(jìn)入緩沖區(qū)的數(shù)據(jù),形成圖形動畫和文本顯示,按操作過程先后組成過程數(shù)據(jù)記錄,定期寫入到非易失存儲器中。各個(gè)節(jié)點(diǎn)模塊將傳感器采集的信號通過串口傳至 MSP430F149微控制器并經(jīng)過簡單的處理,經(jīng)由MCP2510轉(zhuǎn)化成CAN總線的輸出和輸入信號。通過CAN總線傳到S3C2440微處理器進(jìn)行分析處理,判斷系統(tǒng)所處的狀態(tài),在系統(tǒng)異常工作狀態(tài)時(shí),發(fā)出報(bào)警信號,同時(shí)實(shí)現(xiàn)諸多工作參數(shù)的數(shù)字化集中顯示和控制。監(jiān)控中心節(jié)點(diǎn)的主要工作是利用QT/E界面,創(chuàng)建通信線程,請求數(shù)據(jù)采集節(jié)點(diǎn)傳送數(shù)據(jù)到主控制節(jié)點(diǎn),接收塔機(jī)的實(shí)時(shí)運(yùn)行數(shù)據(jù),將其直觀顯示,便于監(jiān)控人員監(jiān)視塔機(jī)的生產(chǎn)運(yùn)行情況。

        本系統(tǒng)主控節(jié)點(diǎn)軟件應(yīng)用程序的編寫是基于Linux操作系統(tǒng),使用QT Designer進(jìn)行界面設(shè)計(jì)。主要功能是:實(shí)現(xiàn)對起重機(jī)的長度、角度、壓力和高度限位開關(guān)量的采集和運(yùn)算;根據(jù)運(yùn)算結(jié)果實(shí)現(xiàn)對起重機(jī)的控制;同時(shí)將相關(guān)數(shù)據(jù)通過液晶顯示。監(jiān)控中心節(jié)點(diǎn)系統(tǒng)的軟件總體結(jié)構(gòu):1)數(shù)據(jù)報(bào)警處理模塊,2)顯示界面模塊(用戶登陸、工作狀態(tài)顯示、參數(shù)設(shè)置、報(bào)警信息查詢模塊),3)按鍵輸入處理模塊,4)CAN收發(fā)數(shù)據(jù)模塊。

        2 主節(jié)點(diǎn)Linux嵌入式系統(tǒng)中CAN字符設(shè)備驅(qū)動程序設(shè)計(jì)

        Linux下的CAN總線驅(qū)動程序是相對復(fù)雜的Linux字符設(shè)備驅(qū)動程序。本系統(tǒng)采用Microchip公司的CAN總線接口芯片MCP2510,實(shí)現(xiàn)TTL電平到CAN總線電平特性的轉(zhuǎn)換,它支持?jǐn)U展格式的 CAN 數(shù)據(jù)幀結(jié)構(gòu)(CAN2.0)。通過設(shè)置MCP2510中的CNF1、CNF2、CNF3三個(gè)寄存器,實(shí)現(xiàn)不同時(shí)鐘下CAN總線通信波特率的設(shè)置。系統(tǒng)中CAN總線的數(shù)據(jù)發(fā)送和接收是兩個(gè)不同的進(jìn)程。在驅(qū)動程序中開放數(shù)據(jù)發(fā)送區(qū)和數(shù)據(jù)接收緩沖區(qū)。驅(qū)動程序會根據(jù)module_init()函數(shù)所指定的參數(shù)作為入口函數(shù),在CAN控制器驅(qū)動程序中,這個(gè)入口函數(shù)為s3c2440_mcp2510_init(),主要完成一些基本的初始化工作。CAN控制器驅(qū)動的初始化工作主要有:軟件復(fù)位,進(jìn)入配置模式;設(shè)置CAN總線傳輸速率;關(guān)閉中斷;設(shè)置ID過濾器;切換MCP2510到正常狀態(tài)(Normal);清空接收和發(fā)送緩沖區(qū)。

        初始化工作完成之后,引入驅(qū)動程序的操作集。應(yīng)用程序通過系統(tǒng)來調(diào)用,是設(shè)備驅(qū)動程序?qū)?yīng)程序的接口。驅(qū)動程序提供如下文件操作入口,定義如下:

        s3c2440_mcp2510_open入口點(diǎn)負(fù)責(zé)打開CAN設(shè)備及初始化,設(shè)置設(shè)備的占用標(biāo)志。s3c2440_mcp2510_release入口點(diǎn)負(fù)責(zé)關(guān)閉 CAN 設(shè)備。s3c2440_mcp2510_read入口點(diǎn)負(fù)責(zé)檢查設(shè)備有沒有接收到完整的幀,判斷是否由完整的數(shù)據(jù)幀可讀。要獲取數(shù)據(jù)幀,使用ioctl的CAN_READFRAME命令。can_write入口點(diǎn)負(fù)責(zé)向CAN發(fā)送數(shù)據(jù)。如果發(fā)送隊(duì)列有足夠的空間,則向設(shè)備傳送數(shù)據(jù)。can_ioctl入口點(diǎn)負(fù)責(zé)向CAN設(shè)備下發(fā)各種操作命令,命令代碼通過cmd參數(shù)傳送,命令參數(shù)通過arg參數(shù)傳送。Read和write操作的驅(qū)動框架如圖2所示,實(shí)現(xiàn)用戶區(qū)和內(nèi)核區(qū)之間的數(shù)據(jù)傳送。

        圖2 Read和Write操作的驅(qū)動框架

        考慮到CAN控制的特點(diǎn)和CAN總線網(wǎng)絡(luò)傳輸數(shù)據(jù)的特點(diǎn),設(shè)計(jì)兩個(gè)數(shù)據(jù)結(jié)構(gòu):CanData和Mcp2510_DEV。

        在CAN控制器設(shè)備驅(qū)動程序中,為了增強(qiáng)CAN控制器的通信能力、提高通信效率,根據(jù)CAN總線的特點(diǎn),使用兩級緩沖區(qū)結(jié)構(gòu),即直接面向CAN控制器的收發(fā)緩存區(qū)和直接面向系統(tǒng)調(diào)用的接收幀緩沖區(qū)。使得當(dāng)大量數(shù)據(jù)進(jìn)出CAN控制時(shí),即可以保證數(shù)據(jù)幀丟失和出錯(cuò)幾率允許范圍內(nèi),又可以保證數(shù)據(jù)幀能被快速下發(fā)和接收。

        在Linux操作系統(tǒng)中,CAN總線通信程序的設(shè)計(jì)可分為發(fā)送數(shù)據(jù)、接收數(shù)據(jù)和中斷處理3個(gè)模塊。如圖3所示,系統(tǒng)中CAN總線的數(shù)據(jù)發(fā)送和接收是兩個(gè)不同的線程。在驅(qū)動程序中建立數(shù)據(jù)發(fā)送和接收緩沖區(qū)。主節(jié)點(diǎn)中斷處理程序只負(fù)責(zé)填充(或者讀?。┚彌_區(qū)中的數(shù)據(jù),然后喚醒等待接收(或發(fā)送)數(shù)據(jù)的任務(wù)。數(shù)據(jù)的發(fā)送和接收都通過獨(dú)立的緩沖區(qū)由中斷來實(shí)現(xiàn)。操作系統(tǒng)的中斷響應(yīng)時(shí)間在軟件上決定了CAN總線數(shù)據(jù)的最快收發(fā)速度。

        圖3 CAN總線通信程序結(jié)構(gòu)

        3 主節(jié)點(diǎn)圖形用戶GUI設(shè)計(jì)

        主節(jié)點(diǎn)顯示模塊主要作用是對起重機(jī)的各種參數(shù)進(jìn)行顯示及設(shè)置相關(guān)的信息查詢功能。Qt Embedded是挪威Trolletch公司的圖形化界面開發(fā)工具Qt的嵌入式版本,它通過QtAPI與LinuxI/O以及Framebuffer直接交互,擁有較高的運(yùn)行效率,而且整體采用面向?qū)ο缶幊蹋瑩碛辛己玫捏w系架構(gòu)和編程模式。Qt Embedded實(shí)現(xiàn)結(jié)構(gòu)如圖4所示。

        圖4Qt Embedded的實(shí)現(xiàn)結(jié)構(gòu)

        工作狀態(tài)顯示畫面LGUI中定義的圖形對象主要包括:文本、矩形、橢圓等表示塔機(jī)的塔身、塔臂和牽引小車及吊鉤。QT4軟件中的2D繪圖部分稱為Arthur繪圖系統(tǒng),它由3個(gè)主要的類支撐起整個(gè)框架:QPainter、QPaintDevice 和 QPaintEngine。QPainter類具有GUI程序需要的絕大多數(shù)函數(shù),能夠繪制基本的圖形(點(diǎn)、線、矩形、多邊形等)以及復(fù)雜的圖形(如圖形路徑)。QPaintPath對象可以用來填充、繪制輪廓。線和輪廓使用畫筆(QPen)進(jìn)行繪制,畫刷(QPrush)進(jìn)行填充。Qt的坐標(biāo)由QPainter控制,QPainter的邏輯坐標(biāo)與QPainter-Device的物理坐標(biāo)之間的映射由QPainter的變換矩陣、視口和窗口處理。邏輯坐標(biāo)與物理坐標(biāo)默認(rèn)是一致的。使用Qt Designer進(jìn)行界面設(shè)計(jì),設(shè)計(jì)一個(gè)定時(shí)器QTimer,建立一個(gè)信號和槽的連接connect(timer、SIGNAL(timerout())、this,SLOT(update()));讓它200ms產(chǎn)生一個(gè)timerout信號,窗口接收函數(shù)為update(),這個(gè)函數(shù)自動調(diào)用PaintEvent()函數(shù),對窗口進(jìn)行重繪,根據(jù)緩沖區(qū)數(shù)據(jù)對LCD屏幕相應(yīng)的圖形顯示進(jìn)行刷新操作。如轉(zhuǎn)動重繪過程當(dāng)中根據(jù)塔吊角度數(shù)據(jù),轉(zhuǎn)動圖形的角度,讓它和角度對應(yīng)起來。重繪圖形之前,先通過Paintsave()保存坐標(biāo)系,轉(zhuǎn)動一定角度用Paintrotate();根據(jù)系統(tǒng)角度旋轉(zhuǎn)后,最后使用 Paint.restore()恢復(fù)系統(tǒng)坐標(biāo)系。塔吊高度顯示圖形通過QPainter::scale()函數(shù)進(jìn)行比例變換;角度顯示圖形使用 QPainter::rotate()函數(shù)進(jìn)行旋轉(zhuǎn)變換;幅度顯示圖形的平移變換則使用QPainter::tanslate()函數(shù)。最終將數(shù)據(jù)通過坐標(biāo)變換后實(shí)時(shí)顯示圖形位置到LCD屏幕上。

        GUI模塊顯示定義了數(shù)據(jù)結(jié)構(gòu)以描述當(dāng)前工作空間以及圖形對象的屬性,結(jié)構(gòu)體data包含6個(gè)float數(shù)據(jù)、3個(gè)char數(shù)據(jù)、5個(gè)bool數(shù)據(jù)、1個(gè)int數(shù)據(jù)。

        4 結(jié)束語

        本文介紹了基于S3C2410的塔吊實(shí)時(shí)監(jiān)控,重點(diǎn)介紹了嵌入式系統(tǒng)的GUI設(shè)計(jì),詳細(xì)地給出了設(shè)計(jì)思路及部分核心代碼。綜合利用嵌入式平臺提供的軟硬件開發(fā)了實(shí)際的塔吊監(jiān)控界面,提高操作的安全性。

        [1]張瑞,于德海,馬明龍.基于ARM 的嵌入式Linux的交叉編譯環(huán)境的建立[J].科技信息,2009(25):508-509.

        [2]劉偉民,韓斌,李征.基于linux的數(shù)據(jù)采集及在QT界面的顯示[J].數(shù)采與監(jiān)測,2008,24(8-1):97-99.

        [3]彭均鍵,史步海,劉洋.基于Qt的嵌入式GUI開發(fā)平臺的搭建[J].微型電腦應(yīng)用,2010,26(2):40-42.

        [4]俞輝.嵌入式Linux程序設(shè)計(jì)案例與實(shí)驗(yàn)教程[M].北京:機(jī)械工業(yè)出版社,2009.

        [5]譚平,劉建新.基于QT的嵌入式CAN網(wǎng)絡(luò)監(jiān)控GUI系統(tǒng)[J]:計(jì)算機(jī)工程與設(shè)計(jì),2008,29(16):4147-4152.

        [6]Trolltech Corporation.Qt for embedded Linux [EB/OL]. http://trolltech.com/products/qtopia/qtopia _core/core_features,2008-01-10.

        [7]趙瑩,徐大平,呂躍剛.基于Qt/Embedded的嵌入式控制界面開發(fā)[J].微計(jì)算機(jī)信息,2009,25(4-2):36-38.

        [8]張春艷.基于Qt的嵌入式圖形用戶界面研究與實(shí)現(xiàn)[D].大連:大連海事大學(xué),2008.

        [9]趙軍偉.基于Linux嵌入式操作系統(tǒng)的圖形化界面的研究和實(shí)現(xiàn)[D].四川:成都理工大學(xué),2010.

        猜你喜歡
        驅(qū)動程序嵌入式總線
        基于PCI Express總線的xHC與FPGA的直接通信
        機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計(jì)
        搭建基于Qt的嵌入式開發(fā)平臺
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        多通道ARINC429總線檢查儀
        Altera加入嵌入式視覺聯(lián)盟
        倍福 CX8091嵌入式控制器
        自動化博覽(2014年4期)2014-02-28 22:31:15
        基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計(jì)
        河南科技(2014年16期)2014-02-27 14:13:22
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        人妻少妇精品视频一区二区三| 被黑人做的白浆直流在线播放| 亚洲精品成人网线在线播放va| 国产成人亚洲精品一区二区三区 | 久久精品无码专区免费青青| 久久半精品国产99精品国产 | 亚洲av成本人无码网站| 亚洲国产精品无码久久九九大片健| 久久精品一区一区二区乱码| 久久亚洲精品国产亚洲老地址| 色欲av自慰一区二区三区| 韩国一级成a人片在线观看| 免费在线观看草逼视频| а天堂中文在线官网在线| 好大好深好猛好爽视频免费| 最新国产成人在线网站| 免费在线不卡黄色大片| 亚洲精品欧美精品日韩精品| 成人欧美一区二区三区a片| 欧美亚洲另类自拍偷在线拍| 日日高潮夜夜爽高清视频| 国产精品av在线| 久久精品一区二区免费播放| 国产精品亚洲精品日产久久久| 亚洲伊人av天堂有码在线| 岳毛多又紧做起爽| 在线不卡av天堂| 亚洲三区av在线播放| 日产精品99久久久久久| 成人做爰高潮尖叫声免费观看| 精品的一区二区三区| 在线成人影院国产av| 国产精品久久久久乳精品爆| 国产主播福利一区二区| 亚洲精品女同在线观看| 午夜爽爽爽男女免费观看影院 | 天堂资源中文网| 人妻影音先锋啪啪av资源| 国产精品欧美亚洲韩国日本| 亚洲国产精品区在线观看| 免费a级毛片无码|