999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于CANopen的分布式兩軸傾角測量器設計※*

2016-02-26 01:56:34姚國棟丑武勝
單片機與嵌入式系統應用 2016年1期

姚國棟,丑武勝

(北京航空航天大學 機械工程學院,北京 100191)

?

基于CANopen的分布式兩軸傾角測量器設計※*

姚國棟,丑武勝

(北京航空航天大學 機械工程學院,北京 100191)

摘要:設計了一個兩軸傾角測量器,傾角測量器通過CANopen協議進行組網,并且符合CiA410子協議,可以方便地接入現有的CANopen分布式網絡。硬件設計多選用高集成度小封裝芯片,整個傾角測量器尺寸為30 mm×45 mm×10 mm,非常適合空間受限的應用。采用面向對象的方法設計CANopen協議棧,結構清晰、易于使用。

關鍵詞:傾角測量器;分布式測量;CANopen;CiA301;CiA410

引言

傾角測量器在現實中有著廣泛的應用,如機器人、高級外科手術工具、導航系統以及姿態控制系統等[1],對于一些分布式應用,系統中可能同時存在多個被測對象或者需要同其他節點一起工作,此時一個能夠組網工作的傾角測量器會給系統搭建帶來極大方便。

1整體說明

所設計的傾角測量器采用CANopen協議接入分布式控制網絡,CANopen是建立在CAN總線之上的應用層協議,最初為機器控制網絡設計,現在在醫療設備、軌道車輛、樓宇自動化等領域都有廣泛應用[2],許多分布式控制網絡也采用CANopen進行組網,采用此協議使得本傾角測量器可以方便地接入已有的CANopen分布式控制網絡。本文主要涉及硬件和軟件設計兩大部分,硬件選型時對芯片的封裝尺寸和成本進行了考慮,在符合需求的情況下盡量選用小封裝器件,設計好的測量器的整體尺寸為30 mm×45 mm×10 mm,能夠方便地應用于空間受限的場合。軟件框架采用前后臺結構,簡潔而高效;協議棧實現了采用面向對象的設計方法,結構清晰且易于擴展。

2硬件設計

傾角測量器的硬件主要由電源系統、微控制器及外圍電路和傳感器及接口3部分組成,硬件整體結構如圖1所示。

2.1電源系統

在分布式控制系統中往往存在許多不同類型的設備,這些設備常常需要不同的工作電壓,由于本傾角測量器針對分布式控制系統設計,為方便傾角測量器集成到現有的控制系統中,設計了一個具有寬電壓輸入范圍的電源系統,輸入電壓為6~26 V,覆蓋了常用的12 V和24 V電源系統。如圖2所示,電源系統分為5 V和3.3 V輸出兩部分。5 V輸出部分采用DC-DC轉換器,可以保證在輸入電壓較高時(如24 V),電源系統也能維持較高的轉換效率和較少的發熱,5 V輸出向CAN接口芯片和3.3 V電源供電;3.3 V輸出部分采用線性穩壓電源,此部分向微控制器和傳感器供電。

這里DC-DC控制器選用ACT4088,采用SOT23-6封裝,轉換頻率為1.4 MHz,高的轉換頻率允許使用很小的LC濾波器,如這里選用的濾波電感尺寸僅為3.5 mm×3.3 mm的CD32系列電感,輸出電容則采用0805封裝瓷片電容。線性穩壓源選用RT9139-33,采用SOT23-5封裝,這是一款低噪聲、高響應速度并具有過流和過熱保護功能的線性穩壓芯片。電源系統原理圖如圖2所示。

2.2微控制器

本設計采用了ST公司的STM32F405RG,具有1 MB片內Flash和192 KB SRAM,能夠滿足本傾角測量器的程序運行要求,另外此微控制器具有豐富的接口,如本文用到的CAN總線接口、SPI接口和UART接口。這里微控制器采用其典型的外圍電路,具體可以參考其數據手冊。

2.3傳感器及CAN總線接口

傳感器是實現傾角測量的核心,這里選用的傳感器型號為MPU9250,這款9軸傳感器內集成了3軸MEMS加速度計、3軸MEMS陀螺儀以及3軸霍爾磁強計。傳感器通過SPI接口與微控制器連接,可以通過此接口設置傳感器的工作參數和讀取傳感器的測量值。

本設計中CAN接口收發器選用TJA1042,采用HVSON8(3 mm×3 mm)封裝,其較SO-8封裝具有更小的尺寸。傳感器及CAN接口原理圖如圖3所示。

圖3 傳感器及CAN接口原理圖

3程序設計

3.1程序整體框架

本設計中采用典型的“前后臺”程序結構,后臺程序完成系統初始化以及資源監控等工作,前臺程序完成剩余的所有工作。圖4為后臺程序框圖,系統復位后,后臺程序開始執行,完成一系列初始化后進入一個無限循環,并在此無限循環中監控系統資源。

圖4 后臺程序框圖

圖5為前臺程序框圖,前臺程序有3個中斷觸發,第1個為1 kHz的“滴答”中斷,此前臺程序為系統提供周期性服務功能,如傳感器數據的周期采樣服務;第2個為SPI接口的DMA中斷(這里SPI通信采用DMA管理),每當數據采樣完成后觸發,此前臺程序完成傳感器數據的預處理及傾角計算;第3個為CAN FIFO中斷,當從CAN總線接收到合法數據幀后觸發,此前臺程序將收到的數據幀傳入CANopen協議棧進行處理,進而完成相應通信功能。

圖5 前臺程序框圖

3.2面向對象的CANopen協議棧實現

參考文獻[3] 對CANopen協議作出了具體定義,由分析可知,CANopen通信協議的功能主要由7種“通信對象”和“對象字典”來實現,其中“通信對象”提供了多種傳輸服務,“對象字典”作為橋梁連接了“通信對象”和“用戶應用”。CANopen協議棧主要包括“通信對象”和“對象字典”的實現,這里采用面向對象的程序設計方法來實現協議棧,這樣協議棧的結構就更加清楚,使用也更加方便。

3.2.1通信對象的實現

通信對象的類視圖略——編者注,主要由4個接口和8個類組成,它們的繼承關系在類視圖中表示。接口類抽象了通信對象間以及通信對象與外部程序間的數據交互,需要處理CAN數據幀的類以實現ICANDataConsumer接口、向CAN總線發送數據幀的類以實現ISendCANData接口或者把ISendCANData作為內嵌對象,實現同步傳輸功能的類(PDO)以實現ISyncMessageConsumer接口、實現高分辨率時鐘信號的類(TimeStamp)以實現IHighPrecisionTick接口。

CANopenStack類本身實現了Network Management(NMT)通信對象的功能,維護NMT狀態機,并把其他通信對象作為內嵌對象,實現對所有通信對象的統一管理,外部程序只需通過此類的實例便可以完成CANopen相關操作。ClientSDO和ServerSDO類實現了Service Data Object(SDO)通信對象的功能,通過SDO可以訪問對象字典中任意可訪問的數據,SDO通信總是由ClientSDO發起并由對應的ServerSDO進行響應。TransmitPDO和ReceivePDO類實現了Process Data Object(PDO)通信對象的功能,通過PDO以及合適的配置可以高效地訪問應用中的過程數據。SyncObject類實現了Synchronization Object(SYNC)通信對象的功能,它為總線上的通信提供了同步參考,PDO同步功能的實現就是以SYNC為參考的。TimeStamp類實現了Time Stamp Object(TIME)通信對象的功能,它為總線提供了一個簡單的時鐘。EmcyObject類實現了Emergency Object(EMCY)通信對象的功能,當設備出現一些內部錯誤時,便可以通過此類向總線匯報錯誤。

3.2.2對象字典的實現

對象字典是CANopen協議棧中的另一個重要內容,一個設備的具體行為就是通過對象字典中的各個數據對象進行定義的。這里設計了ObjDictionary類來抽象對象字典的行為,此類維護一個數據對象列表,對外提供AddDataObj、GetDataObj和Sort三個方法。AddDataObj方法可以向字典中添加新的數據項;GetDataObj方法可以獲取指定索引的數據對象;Sort方法對列表中對象按照索引(Index)進行排序,以方便執行高效的二分查找。字典中的數據對象均派生自同一個抽象類DataObjBase,此類定義了兩個純虛函數GetEntity和SetEntity,派生類依據各自特性對這兩個函數進行實現,這樣利用C++的多態特性便可以通過無差異的函數調用實現對不同類型數據對象的操作,保證了程序的可擴展性。當需要新類型的數據對象時,僅需從DataObjBase派生一個新類并直接使用,而不必修改其他類的實現。這里主要派生了3個數據對象類,其中CommonDataObj為模板類,可以接收任意的簡單數據類型及一維數組,CANopen中預定義的“基本數據類型”和“擴展數據類型”均可以用此類來表示。對象字典相關類的類視圖略——編者注。

3.3CiA410兼容配置

此部分講述如何設計和配置傾角測量器的對象字典,從而使其符合CiA410標準[4]。CiA410是專門為傾角測量器設計的設備子協議,對實現一個傾角測量器所需的通信層和應用層數據對象進行了定義。下面對與傾角測量器相關的關鍵數據對象進行說明。

3.3.1設備類型(0x1000)

此數據對象定義設備的類型為一個無符號32位變量,低16位為410(十進制),表示符合CiA410標準,高16位為0x0002(十六進制),表示一個分辨率為16位的兩軸傾角測量器。

3.3.2TPDO1(0x1800、0x1A00)

數據對象0x1800和0x1A00分別定義了TPDO1的通信參數和映射參數,TPDO1用于實時獲取16位分辨率的縱向傾角值和橫向傾角值。表1對TPDO1的定義進行了說明。

除TPDO1外,CiA410標準還強制要求定義TPDO2,默認配置為獲取32位分辨率的傾角值,由于這里僅僅實現了16位分辨率,為了保證符合標準,這里對TPDO2的參數(0x1801、0x1A01)也做了定義,不過所有參數均為只讀,且0x1801的SubIndex1定義為0x8000 0280+nodeID,即TPDO2處于無效狀態,且主機無法通過SDO使能TPDO2。

表1 TPDO1參數的定義

3.3.3應用相關對象

應用相關對象對傾角測量器的具體功能進行了定義,具體定義及說明見表2。

4傾角測量的實現

本設計采用集成的三軸加速度計實現姿態的測量,基本原理是通過測量重力加速度在傳感器正交的3個測量

軸上的分量來計算出傾角測量器相對水平面的兩個傾角。測量平面由傳感器的X軸(縱軸)和Y軸(橫軸)定義,縱向傾角定義為縱軸與水平面的夾角,橫向傾角定義為橫軸與水平面的夾角。當用gx、gy和gz分別表示傳感器沿3個敏感軸的測量值,縱向傾角αlong和橫向傾角αlateral分別由下式計算[5]:

表2 傾角測量器相關的數據對象定義

5實驗驗證

這里采用CANalyst-II CAN分析儀+CANPro分析軟件對所設計的傾角測量器進行測試,采用這樣的測試組合可以直接對CANopen數據幀進行識別和分析。測試時有兩個傾角測量器連接到分析儀,這兩個傾角測量器的Node-ID分別為10和11,參數依據3.3節進行配置,可以通過默認的TPDO1獲取傾角值,且TPDO1支持同步傳輸,測試過程的截屏略——編者注,通過CANPro分析工具以1 s的周期發送同步(SYNC)消息,緊隨SYNC消息后面是兩個傾角測量器在SYNC觸發下發送的TPDO數據(即測得的縱向傾角值和橫向傾角值),圖中數據以十六進制表示。

結語

本文設計了一款兩軸傾角測量器,可以通過CAN總線方便地接入到CANopen分布式網絡,符合CiA410子協議,可以方便地替換其他符合CiA410的設備。通過實驗測試,本傾角測量器可以在CANopen網絡中工作。

[1] Luczak S,Oleksiuk W,Bodnicki M.Sensing tilt with MEMS accelerometers[J] .Sensors Journal,2006,6(6):1669-1675.

[2] CiA.CANopen[EB/OL].[2015-08].http://www.can-cia.org/index.php?id=systemdesign-canopen.

[3] CiA301.CANopen application layer and communication profile[S] .CAN in Automation,2011.

[4] CiA410.Device profile for inclinometer[S] .CAN in Automation,2010.

Distributed Two-axis Inclinometer Design Based on CANopen※

Yao Guodong,Chou Wusheng

(Institute of Mechanical Engineering and Automation,Beihang University,Beijing 100191,China)

Abstract:A two-axis inclinometer is designed which can be networked by CANopen protocol.This inclinometer complies with CiA410 sub-protocol,so it can be integrated into the existing CANopen network easily.The dimension of the inclinometer is only 30 mm×45 mm×10 mm because of the using of the high integration chips,so it is very suitable for the space limited applications.CANopen protocol stack is designed using the object-oriented method,which has a clear structure and is easy to use.

Key words:inclinometer;distributed measurement;CANopen;CiA301;CiA410

收稿日期:(責任編輯:薛士然2015-08-19)

中圖分類號:TP212.12

文獻標識碼:A

基金項目:*國家磁約束核聚變能研究專項資助項目(2012GB102006)。

主站蜘蛛池模板: 国产在线一区视频| 久久不卡精品| 色精品视频| 一本色道久久88综合日韩精品| 成人免费视频一区| 亚洲欧美激情小说另类| 国产流白浆视频| 国产乱人激情H在线观看| 国产剧情一区二区| 亚洲免费毛片| 最新亚洲人成无码网站欣赏网| 亚洲欧美日韩中文字幕一区二区三区 | 免费国产小视频在线观看| 国产成人精品一区二区不卡| 欧美福利在线播放| 国产精品19p| 精品国产网站| 国产精品一区不卡| a级毛片在线免费观看| 欧美一级高清视频在线播放| 国产激情无码一区二区APP | 久久久久国产精品熟女影院| 亚洲av无码人妻| 欧美国产视频| 天天综合亚洲| 国产欧美高清| 男女性午夜福利网站| 九色视频线上播放| 色吊丝av中文字幕| 欧美一区二区啪啪| 国产农村妇女精品一二区| AV片亚洲国产男人的天堂| 91国内视频在线观看| 日韩在线视频网| 综合人妻久久一区二区精品 | 国产亚洲精久久久久久无码AV | 国内精品视频| 久久国产乱子| 又爽又黄又无遮挡网站| 亚洲国产欧洲精品路线久久| 日本人妻丰满熟妇区| 午夜一区二区三区| 亚洲综合中文字幕国产精品欧美| 99久久99视频| 久久91精品牛牛| 亚洲中文字幕在线一区播放| 日韩经典精品无码一区二区| 一级做a爰片久久毛片毛片| 波多野结衣无码AV在线| 国产成人高清亚洲一区久久| 一级成人a毛片免费播放| 91精品免费高清在线| 欧美激情网址| 国产交换配偶在线视频| 国产成人夜色91| 在线观看免费AV网| 国产一级做美女做受视频| 国产菊爆视频在线观看| 亚洲欧美成人| 成年人视频一区二区| 国产成人精品男人的天堂下载| 免费a在线观看播放| 毛片卡一卡二| 亚洲综合国产一区二区三区| 亚洲一道AV无码午夜福利| 亚洲a级毛片| 精品福利视频导航| 国产精品亚洲专区一区| 日本免费一级视频| 在线看AV天堂| 久久亚洲天堂| 综合亚洲网| 久久久久九九精品影院| 日本三级黄在线观看| 伊人色在线视频| 天堂网亚洲系列亚洲系列| 成AV人片一区二区三区久久| 韩日免费小视频| 国产日产欧美精品| 婷婷色丁香综合激情| 亚洲视频黄| 国产乱子伦视频三区|