《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > CAN總線在野外地震數據傳輸中的應用
CAN總線在野外地震數據傳輸中的應用
來源:電子技術應用2013年第9期
陳 瑛,宋俊磊,王典洪
中國地質大學(武漢) 機械與電子信息學院,湖北 武漢430074
摘要: 野外地震數據傳輸和組網技術是地震臺網建設中的重要組成部分,關系著地震數據的實時性、有效性等問題。采用CAN總線連接分散的地震采集點,并利用ARM微處理器、多任務操作系統Linux和應用程序框架Qt共同構建地震臺網局部管理系統,大大簡化了流動站管理任務,為組建更大規模的流動采集站提供了可能。
中圖分類號: TH762
文獻標識碼: A
文章編號: 0258-7998(2013)09-0034-04
Application of CAN bus in field seismic data transmission
Chen Ying,Song Junlei,Wang Dianhong
Faculty of Mechanical & Electronic Information,China University of Geosciences,Wuhan 430074,China
Abstract: Technology of transmission and networking on field seismic data is an important part of seismic network,which concerns real-time and effectivity of seismic data.Design of connecting dispersed data acquisition nodes via CAN bus is detailed. A local seismic management system is constructed based on ARM microprocessor, multitask operating system Linux as well as application framework Qt,that simplifies management tasks of mobile station and makes it possible to construct larger-scale mobile station.
Key words : CAN bus;field communication;ARM;Linux;Qt

    目前,地震預報的信息來源主要依靠遍布在各處的地震觀測臺站所監測到的地震數據。隨著地震觀測臺網規模日益擴大,實時性和數據量的要求也在不斷提高。除了固定的地方地震觀測臺站以外,還有大量野外流動地震觀測站。流動觀測站主要對一定時間和地區內的數據進行強化觀測,用以提高監測能力和異常跟蹤能力,并可以針對多種物理量進行采集,將數據反饋到臺網中心[1]。因此,一個流動站常常會布置數量眾多而又分散的采集點,而如何將這些分散的采集點的數據傳輸到地震臺網,是野外流動觀測技術的關鍵之一。

    在野外復雜環境中,通常將采集節點數據匯總至流動站,再由流動站統一接入互聯網。局部數據的傳輸方式可有多種選擇,需要綜合考慮距離、便捷性、可靠性及成本等多種因素。本文中設計了一種采用控制器局域網(CAN)進行地震數據傳輸的方式,以滿足分散的采集點能在相對較廣范圍內進行組網通信的要求。
1 系統框架
    本文以激光多普勒地震儀項目為背景進行系統構建,主要解決將分散的采集點進行集中管理的問題。由于野外采集點數量眾多,且安裝位置較分散,若都與流動站之間直接組建局部網絡連接,則無論采用何種組網方式,都必將加重人力、物力的投入,同時也會加重流動站的管理負擔。因此,本文采用中繼站的思想,將一定區域內的采集點利用總線方式匯總到主控機上,再由主控機統一將數據傳輸到流動站,系統結構如圖1所示。采用這種分布式結構,一方面可以降低采集點組建網絡的成本,另一方面主控機可以取代部分流動站的功能,對本局域網內的采集點進行管理和監控,便于組成規模更大的野外流動站。

    系統采用的控制器局域網(CAN)是一種ISO國際標準化的串行通信協議,能有效支持具有很高安全等級的分布實時控制。相對于其他總線,CAN總線具有傳輸距離遠、速度較快、抗干擾能力強、介質簡單、可靠性高等優勢[2-3],適合野外無人值守的環境。
2 采集節點的CAN通信實現
    項目中采集點的主控芯片采用TI公司C54系列DSP,因芯片不帶CAN控制端口,所以要在DSP平臺上實現CAN通信節點的設計。
2.1 基于DSP的傳輸節點設計
    項目選取SPI接口的獨立控制器MCP2515作為總線控制端,收發器采用帶有隔離的總線收發器ADM3054,該芯片直接將隔離器和收發器集成到一起,省去了控制器與收發器之間的光耦隔離,同時也可解決控制器與收發器之間的電平匹配問題,簡化外圍電路設計。
    將DSP的多通道緩沖串行口(McBSP)配置成SPI兼容模式,這種模式下每一幀的長度是固定的。但MCP2515的SPI控制指令長度并不統一,因此,采取折中方案以最長的指令位數來配置串行口。
    使用SPI模式通信時,關鍵的問題是時序的匹配,因為DSP的工作時鐘頻率遠高于SPI傳輸時鐘頻率,所以需要在讀操作時加入足夠長的延時。圖2中的(a)、(b)可反映這一情況,采用控制器的環回模式進行測試,DataSend數組中存放的是發送的8 B數據,RecvBuff數組中存放的則是通過SPI讀取接收數據寄存器得到的值。圖2(a)是沒有加入足夠延時的讀操作,從虛線框標出的數據看出,讀操作在時間上發生了錯位,當前的讀操作實際讀到的是上一個指令傳送回來的數據,而圖2(b)在加入了足夠長的延時之后,能在時間上對應,讀到正確的數值。

2.2 節點的通信策略
    CAN協議所采用的對報文進行地址編碼的方式便于在總線上增刪節點。在本項目中,由于各個節點都只與主控機進行通信,所以,充分利用CAN報文幀ID識別碼的特性,將發送幀的識別碼、本節點的編碼以及本節點接收濾波器的識別碼相統一。而主控機的節點則可以讀取所有總線上的報文,所采用的通信策略如圖3所示,這樣的設計實際上就將原先總線式的拓撲結構轉換成了類似星形拓撲的結構,便于主機管理所有節點。

3 主控制點的設計
    相對于采集節點單一的采集處理任務而言,主控機需要實現更多的功能,單任務的MCU則無法滿足要求。因此,本文選用嵌入式微處理器ARM11作為主控機的硬件平臺,ARM處理器具有豐富的外設接口和良好的實時控制性能,無論從尋址空間還是處理性能上,都要優于一般的單片機,適合充當小型控制中心。
3.1 Linux下CAN網絡設備驅動的實現
    項目中移植了Linux 3.0.1版本內核作為軟件運行的系統平臺,內核會為驅動提供統一的接口。在較新版本的內核中,CAN設備已經不再簡單定義成字符設備,而是定義成網絡設備,這更接近于CAN是一種局域網的本質,從而可以使用Socket套接字操作CAN設備,并使用內核提供的高級功能。
    對內核已提供的MCP2515的驅動文件進行修改以符合硬件平臺的實現。通過定義mcp251x_priv結構體來管理設備所有的信息,如下所示:
struct mcp251x_priv {
    struct can_priv       can;
    struct net_device *net;
    struct spi_device *spi;
    ……
};
    以上3個結構體變量分別存放了設備需要使用的協議層、網絡層和硬件層的相關信息。通常,網絡設備驅動模塊主要包括網絡協議接口層、網絡設備接口層、設備驅動功能層和網絡設備與媒介層4層[4],各部分模塊在內核中的結構關系如圖4所示。設備通過SPI子系統來實現硬件層操作,網絡設備與SPI設備之間的連接橋梁是驅動功能層struct net_device_ops,通過它向上層提供網絡設備的底層硬件操作接口函數:
struct net_device_ops mcp251x_netdev_ops = {
    .ndo_open = mcp251x_open,
    .ndo_stop = mcp251x_stop,
    .ndo_start_xmit = mcp251x_hard_start_xmit,
};

    采用“頂半部”和“底半部”的機制來處理中斷,可以解決在中斷中讀寫SPI耗時的問題,這種機制將耗時過長的中斷程序放到更安全的時段中運行,以使系統能及時響應其他的中斷請求[5]。因此,僅僅在中斷函數中喚醒一個處理函數的工作隊列:schedule_work(&priv->irq_
work),而將真正的處理程序放到這個工作隊列中運行,以保證系統實時響應的性能。
    運行驅動還需要向內核注冊必要的硬件信息,如晶振頻率(.oscillator_frequency)、SPI總線號(.bus_num)、硬件中斷號(.irq)等硬件信息。其中設備名(.modalias)必須要和驅動中定義的設備名相同,否則內核無法把這些信息傳遞到驅動中。
struct mcp251x_platform_data mcp251x_info = {
    .oscillator_frequency = 8000000,
    .board_specific_setup = mcp251x_ioSetup,
    ……
};
struct spi_board_info spi_mcp251x_info[] = {
    {    .modalias = "mcp2515",
        .platform_data = &mcp251x_info,
        .irq = IRQ_EINT(16),
        .bus_num = 1,
    ……
    },
};
3.2 基于Qt的控制應用程序開發
    上層應用程序是實現主控制點所有功能的入口,也是人機交互的平臺。項目采用跨平臺的C++應用程序開發框架Qt來實現圖形化用戶界面程序的開發,其具有良好的適應性和可移植性[6]。
    本系統中移植了4.8.0版本的Qt庫,如圖5所示。項目應用程序的主要框架通過窗體部件類QWidget來構建。為了使界面更直觀,加入了對標簽窗體類QTabWidget的支持。同時,主控機的Socket CAN通信功能由多線程來實現,多線程機制可以使Qt程序在同時運行多個阻塞式任務時,不會影響用戶界面的響應。

 

 

    子線程類RecvThrd主要實現對CAN口的監聽任務,并通過信號-槽機制將數據傳給主線程,重寫虛成員函數void RecvThrd :: run( )加載新的線程任務。Socket CAN的使用類似于其他網絡協議操作,主要包括建立套接字、綁定端口和監聽等,不同的是CAN通信不需要與對方建立連接,主要實現方式如下:

void RecvThrd :: run( )
{
    rv_sk=socket(PF_CAN,SOCK_RAW,CAN_RAW);
    recv_addr.can_family = AF_CAN;
    recv_addr.can_ifindex = 0;
    bind(rv_sk, (struct sockaddr *)&recv_addr, len);
    recvfrom(rv_sk,(void*)&recv_frame,sizeof(struct can_frame),0,(struct sockaddr *)&recv_addr, &len);
    ……
}
    如圖6所示,使用繪圖類QPainter在子窗口Graph中實時顯示動態數據曲線和坐標。繪制坐標曲線時首先要使用QPainter的視窗轉換函數將Qt中默認的繪圖坐標原點從屏幕的左上角移到左下角。動態曲線采用折線方式繪制,當曲線超過一定寬度后,會實時向左平移。由于在Qt中使用專門定義的數據類型,所以C中的通用數據類型都需經過特定轉換后才能供Qt使用和顯示。管理數據和文件時使用流操作可有效減少系統調用次數,提高運行速度[7]。
4 測試與總結
    將Qt應用程序交叉編譯后,下載到ARM平臺上運行,產生圖6中的標簽式窗口界面。在構造主窗體時傳入Qt :: FramelessWindowHint參數,可以讓界面不產生標題欄,使窗口界面能準確并完整地顯示在液晶屏上。
    當主線程檢測到新的地震采集節點號時,會彈出消息框通知用戶處理,新節點會被加入每個子窗口的設備列表中,或被丟棄。引入Qt的互斥鎖QMutex機制,可以有效避免因命令沒有得到及時處理而導致重復添加相同ID號的情況。在另外兩個子窗口中可以瀏覽接收的數據以及管理對應節點。

    測試表明,基于ARM平臺的主控機可以滿足數據收發、實時顯示、節點監控以及異常記錄等多任務要求,在不影響與地震采集節點間通信的前提下,實現良好的人機交互和實時控制性能,在整個網絡系統中起中繼站的作用,方便了流動站對分散的地震采集節點的控制和管理。
    本文設計了一種采用CAN總線通信技術在地震數據采集點與流動站之間進行數據傳輸的方式,利用CAN總線通信傳輸距離長、抗干擾能力強、易于施工布線的特點,以及微處理器ARM優越的實時控制能力和良好的通信能力,在地震采集節點與流動站之間構建中間控制點,以星形拓撲的方式將一定范圍內分散的采集點集中控制。同時,通過在ARM硬件平臺上構建Linux多任務系統平臺,采用Qt嵌入式應用程序框架搭建人機交互界面,實現了良好的實時控制和管理功能。這種基于CAN總線和嵌入式技術的地震數據傳輸方式,既便于野外環境中網絡的組建和拓展,也有利于減輕流動站的管理任務。
參考文獻
[1] 王晨,滕云田,王曉美,等.地震前兆野外流動觀測無線組網系統[J].地球物理學進展,2012,27(3):945-949.
[2] 郭成鎮,何迪.CAN總線的PLC通信網絡的研究[J].通信技術,2012,45(7):51-53,74.
[3] 梁金芝.CAN總線協議在嵌入式系統中的應用[J].電腦知識與技術,2011,7(20):5003-5004.
[4] 宋寶華.Linux設備驅動開發詳解(第2版)[M].北京:人民郵電出版社,2010.
[5] CORBET J,RUBIN A,KROAH-HARTMAN G.Linux設備驅動程序(第3版)[M].魏永明,耿岳,鐘書毅,譯.北京:中國電力出版社,2005.
[6] BLANCHETTE J,SUMMERFIELD M.C++ GUI Qt 4編程(第2版)[M].閆鋒欣,譯.北京:電子工業出版社,2008.
[7] MATTHEW N,STONES R.Linux程序設計(第4版)[M].陳健,宋健建,譯.北京:人民郵電出版社,2010.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美国产日韩亚洲一区| 亚洲男人第一av网站| 欧美一区二区三区在线观看视频| 在线免费不卡视频| 久久精品国产第一区二区三区| 欧美制服丝袜第一页| 国产日韩专区在线| 亚洲三级影片| 欧美精品网站| 久久影院午夜论| 亚洲电影激情视频网站| av成人激情| 久久国产精品亚洲va麻豆| 99国产精品久久| 欧美国产第二页| 一区二区在线免费观看| 欧美一级片一区| 亚洲国产欧美日韩| 日韩西西人体444www| 欧美激情视频一区二区三区在线播放| 国产精品亚洲а∨天堂免在线| 亚洲视频欧美在线| 亚洲精品在线看| 亚洲性视频网站| 欧美偷拍一区二区| 欧美视频福利| 欧美视频国产精品| 欧美日韩精品免费在线观看视频| 国产精品久久久一本精品| 亚洲欧洲偷拍精品| 国产综合欧美在线看| 黄色成人av在线| 亚洲欧美综合网| 一区二区在线看| 欧美激情网友自拍| 亚洲日本va午夜在线影院| 亚洲一区二区三区四区五区午夜| 国产欧美日本| 欧美一区二区成人| 亚洲欧美精品一区| 亚洲伦理一区| 日韩一二三在线视频播| 亚洲欧美福利一区二区| 中文国产亚洲喷潮| 欧美一区二区精品| 国产亚洲成av人片在线观看桃| 久久亚洲精品一区二区| 亚洲一区二区高清| 久久亚洲精选| 玖玖玖免费嫩草在线影院一区| 一区二区三区国产精品| 99精品视频网| 亚洲日本电影| 国产欧美日韩三区| 欧美国产精品一区| 欧美一区日本一区韩国一区| 久久久精品国产免费观看同学| 亚洲私人影院| 免费观看一区| 亚洲伊人第一页| 久久av老司机精品网站导航| 一区二区三区免费观看| 激情视频一区二区三区| 国产精品每日更新在线播放网址| 在线看片一区| 欧美日韩另类视频| 欧美色精品在线视频| 一区二区免费在线观看| 久久亚洲精品伦理| 久久久之久亚州精品露出| 欧美激情va永久在线播放| 在线欧美不卡| 永久免费视频成人| 欧美日韩视频在线| 久久露脸国产精品| 欧美激情视频在线免费观看 欧美视频免费一| 性做久久久久久免费观看欧美| 国产一区二区三区日韩欧美| 欧美在线视频观看| 久久精品欧美日韩精品| 欧美影院视频| 一色屋精品视频在线观看网站| 欧美综合激情网| 午夜性色一区二区三区免费视频| 国产伦理精品不卡| 国产精品视频区| 在线免费观看日本欧美| 欧美精品一区二区在线播放| 亚洲国产1区| 欧美精品色综合| 国内久久精品视频| 午夜久久福利| 亚洲欧洲一二三| 国产精品极品美女粉嫩高清在线| 久久一本综合频道| 在线看不卡av| 亚洲日本成人在线观看| 欧美极品一区二区三区| 久久久久久久999| 免费欧美电影| 一区二区三区日韩精品视频| 国产日韩精品久久| 蜜桃av久久久亚洲精品| 欧美韩日一区二区三区| 免费不卡中文字幕视频| 欧美成人精品1314www| 久久精品国产精品亚洲综合| 欧美电影免费观看高清| 欧美日韩一级视频| 中日韩美女免费视频网址在线观看| 麻豆成人综合网| 欧美一区二区三区免费观看| 欧美伦理一区二区| 亚洲一区二区视频在线观看| 一区在线观看| 欧美一区网站| 国产精品一区久久久| 欧美日韩免费观看一区=区三区| 国产精品麻豆va在线播放| 国产精品一区=区| 日韩视频三区| 狠狠色丁香久久婷婷综合丁香| 国产日韩欧美麻豆| 国产麻豆精品theporn| 欧美一级理论片| 午夜激情久久久| 欧美精品日韩精品| 国产精品久久国产精品99gif| 亚洲你懂的在线视频| 精品999久久久| 国产亚洲欧美在线| 久久人人97超碰国产公开结果| 一区二区久久| 激情欧美一区二区三区在线观看| 老色鬼精品视频在线观看播放| 亚洲欧洲精品一区二区三区不卡| 久久国产高清| 免费视频一区二区三区在线观看| 亚洲国产精品久久久久秋霞影院| 亚洲国产另类精品专区| 欧美一区二区三区四区高清| 亚洲少妇中出一区| 国产喷白浆一区二区三区| 免费欧美在线| 国产欧美一区二区精品仙草咪| 亚洲伊人一本大道中文字幕| 老色鬼精品视频在线观看播放| 亚洲精品久久久蜜桃| 国精产品99永久一区一区| 国产午夜精品一区理论片飘花| 免费91麻豆精品国产自产在线观看| 久久最新视频| 国内外成人免费激情在线视频| 麻豆九一精品爱看视频在线观看免费| 国产一区二区三区高清播放| 国产精品久久久久久久浪潮网站| 欧美视频网址| 亚洲日本无吗高清不卡| 欧美黄色aaaa| 久久精品99无色码中文字幕| 曰韩精品一区二区| 一区二区三区 在线观看视| 1024成人网色www| 久久九九精品99国产精品| 亚洲激情国产精品| 国产嫩草影院久久久久| 欧美精品一区在线| 欧美日韩亚洲一区在线观看| 亚洲愉拍自拍另类高清精品| 亚洲男人的天堂在线aⅴ视频| 亚洲桃色在线一区| 黑人巨大精品欧美一区二区| 亚洲毛片在线观看| 国产精品一二| 欧美一区二区三区日韩| 久久久国产精彩视频美女艺术照福利| 国产视频欧美| 亚洲一区日韩在线| 亚洲深夜福利视频| 亚洲娇小video精品| 亚洲已满18点击进入久久| 国产精品国产三级国产aⅴ入口| 精品不卡一区| 亚洲国产欧美国产综合一区| 亚洲精品视频一区| 一本色道久久综合亚洲精品不卡| 亚洲国产精品女人久久久| 亚洲视频在线一区观看| 国产午夜精品在线观看| 亚洲第一成人在线| 亚洲天堂av综合网| 国产美女精品视频免费观看| 欧美一区二区三区四区在线| 亚洲欧美国产精品专区久久| 久久国产精品久久精品国产| 久久久夜精品| aa级大片欧美| 久久亚洲精品伦理| 亚洲综合成人在线| 欧美日韩亚洲一区二区三区在线| 久久亚洲国产精品日日av夜夜| 久久久av毛片精品| 亚洲国产精品欧美一二99| 欧美精品日本| 国产一区二区高清| 国产欧美日韩综合| 欧美精品久久久久久久久老牛影院| 精品动漫3d一区二区三区免费版| 久久综合伊人77777| 亚洲人成网站影音先锋播放| 亚洲欧洲在线视频| 樱桃成人精品视频在线播放| 欧美在线free| 亚洲永久免费av| 国产精品久久77777| 欧美日韩国产专区| 国产精品色午夜在线观看| 国产精自产拍久久久久久蜜| 久久人人爽爽爽人久久久| 久久久av水蜜桃| 久久午夜色播影院免费高清| 亚洲福利视频专区| 久久久精品性| 99re热精品| 国产精品v欧美精品∨日韩| 亚洲人被黑人高潮完整版| 国产精品一区二区久久久| 亚洲欧美综合精品久久成人| 欧美一区二区精品在线| 欧美福利精品| 精品动漫3d一区二区三区| 亚洲日本va午夜在线影院| 宅男噜噜噜66国产日韩在线观看| 久久精品国产一区二区三| 91久久中文| 久久精品99久久香蕉国产色戒| 国产一区二区欧美日韩| 亚洲福利小视频| 午夜精品www| 韩国av一区二区三区四区| 亚洲女性喷水在线观看一区| 99精品国产在热久久| 欧美午夜欧美| 欧美电影电视剧在线观看| 伊人成综合网伊人222| 亚洲国产精品尤物yw在线观看| 欧美大片国产精品| 在线日韩中文字幕| 久久精品99无色码中文字幕| 亚洲欧美激情视频在线观看一区二区三区| 亚洲精品乱码久久久久久日本蜜臀| 这里只有视频精品| 亚洲视频综合在线| 亚洲小说春色综合另类电影| 国产日韩欧美视频| 亚洲丶国产丶欧美一区二区三区| 免费在线亚洲| 欧美区二区三区| 久久精品av麻豆的观看方式| 亚洲九九精品| 国产精品精品视频| 一区二区国产在线观看| 欧美日韩一级片在线观看| 亚洲午夜电影在线观看| 欧美伊人久久久久久久久影院| 免费国产一区二区| 一区二区三区三区在线| 欧美高清一区二区| 亚洲美女视频在线免费观看| 欧美人成在线视频| 在线免费观看日本欧美| 免费h精品视频在线播放| 久久久久综合| a91a精品视频在线观看| 免费不卡在线观看av| 狠狠噜噜久久| 欧美国产一区在线| 国产视频在线观看一区| 亚洲人永久免费| 久久www免费人成看片高清| 亚洲第一黄色网| 亚洲欧美日韩国产一区二区三区| 国产精品一区二区黑丝| 国产日韩欧美不卡在线| 久久婷婷国产综合尤物精品| 欧美亚韩一区| 两个人的视频www国产精品| 国内一区二区在线视频观看| 欧美色综合天天久久综合精品| 欧美成人免费全部观看天天性色| 国产精品久久夜| 欧美国产日韩亚洲一区| 可以看av的网站久久看| 在线亚洲精品福利网址导航| 夜夜精品视频| 日韩视频三区| 亚洲精品一区二区三区蜜桃久| 国产日韩专区| 亚洲日本精品国产第一区| 国产精品视频你懂的| 免费国产自线拍一欧美视频| 久久精品在线| 久久精品网址| 欧美一区二区三区免费大片| 亚洲激情在线视频| 99综合电影在线视频| 亚洲少妇中出一区| 久久久精品五月天| 久久精品在线| 宅男噜噜噜66国产日韩在线观看| 久久久精品五月天| 欧美有码在线观看视频| 国产一区二区三区四区| 欧美日韩国产成人| 亚洲免费综合| 亚洲欧美在线一区二区| 蜜臀99久久精品久久久久久软件| 亚洲美女av在线播放| 国产精品入口66mio| 红桃视频亚洲| 亚洲欧美另类在线| 久久久美女艺术照精彩视频福利播放| 国产精品久久久久久久久免费桃花| 欧美 日韩 国产一区二区在线视频| 久久精品91久久香蕉加勒比| 久久激情五月丁香伊人| 亚洲激情在线播放| 国产欧美视频在线观看|