国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于CAN總線的GPS監(jiān)控系統(tǒng)數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)

2011-11-07 08:37聶平由
關(guān)鍵詞:封包字節(jié)總線

聶平由

(湖南工業(yè)職業(yè)技術(shù)學(xué)院,湖南 長(zhǎng)沙 410208)

基于CAN總線的GPS監(jiān)控系統(tǒng)數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)

聶平由

(湖南工業(yè)職業(yè)技術(shù)學(xué)院,湖南 長(zhǎng)沙 410208)

本文中的車載GPS監(jiān)控系統(tǒng)以MCP2515為CAN總線控制器,MCP2551為CAN總線收發(fā)器,主要介紹了CAN總線上的智能節(jié)點(diǎn)和監(jiān)控終端以及監(jiān)控終端和監(jiān)控中心數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)方法。

CAN總線;MCP2515;車載GPS;IP協(xié)議

1、前言

在中國(guó)交通越來越發(fā)達(dá)的今天,一個(gè)單位如何有效的管理好自己所屬的車輛成了一個(gè)熱點(diǎn)問題。隨著GPS由軍用向民用的轉(zhuǎn)變,車載GPS監(jiān)控系統(tǒng)逐漸進(jìn)入人們的視野,并且很好的解決了車輛管理的問題。人們把GPS監(jiān)控系統(tǒng)采集來的定位信息、攝像頭拍攝到的車內(nèi)信息等通過GPRS模塊發(fā)送到監(jiān)控中心,使中心能夠及時(shí)準(zhǔn)確的了解每一部車的信息。在國(guó)內(nèi)外的汽車制造業(yè)中,CAN總線是使用最普遍的汽車總線,并且有普及之勢(shì),比如奧迪 A6、奧迪 A4、寶來、帕薩特、Fiat Palio、Fiat Siena、BMW等,主要用在動(dòng)力系統(tǒng)(發(fā)動(dòng)機(jī)、變速箱及儀表)和安全系統(tǒng)(ABS、EBD、BAV、ASR、ESP等)。監(jiān)控中心如果要及時(shí)知道這方面的信息,比如說各儀表的顯示數(shù)據(jù)、車輛的速度、發(fā)動(dòng)機(jī)的狀態(tài)等等,就要把監(jiān)控終端設(shè)計(jì)為一個(gè)智能節(jié)點(diǎn)掛接在汽車CAN總線上,這樣就能夠?qū)崿F(xiàn)各節(jié)點(diǎn)間的通信。監(jiān)控中心能夠通過GPRS收集到汽車CAN總線上其他智能節(jié)點(diǎn)的信息,也能夠發(fā)送控制命令去控制各智能節(jié)點(diǎn)。本系統(tǒng)中選用MCP2515為CAN總線控制器,MCP2551為CAN總線收發(fā)器,GPRS模塊選用華為的GTM900。

2、系統(tǒng)的總體框圖

本文提出的基于CAN總線的車載GPS監(jiān)控系統(tǒng)的總體框圖如下,此監(jiān)控終端連接上CAN收發(fā)器和CAN控制器,使之成為一個(gè)能夠掛接在汽車CAN總線上的智能節(jié)點(diǎn),它可以和汽車CAN總線上的其他智能節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交換。監(jiān)控終端不停的監(jiān)聽CAN總線上的數(shù)據(jù),根據(jù)數(shù)據(jù)中的標(biāo)識(shí)符進(jìn)行過濾,如果符合終端接收的要求,則數(shù)據(jù)能夠傳輸?shù)浇K端,如果不符合要求的標(biāo)識(shí)符,則被過濾。被終端接收到的數(shù)據(jù)通過GPRS模塊發(fā)送到監(jiān)控中心去,這樣監(jiān)控中心就能夠了解CAN總線上其他節(jié)點(diǎn)的信息,并根據(jù)接收到的信息發(fā)送相應(yīng)的控制字節(jié)到其他智能節(jié)點(diǎn)中去。系統(tǒng)總體框圖如下:

圖1 系統(tǒng)總體框圖

3、控制終端與CAN總線上的其他智能節(jié)點(diǎn)的通信

3.1 CAN總線通信部分的電路連接圖

MCP2515具有高速的SPI接口,只需要CS、SI、SO和SCK四條線與MCU的管腳連接就可以實(shí)現(xiàn)數(shù)據(jù)的發(fā)送與接收。MCP2515和MCP2551所需的電壓不同,分別是3.3V和5V,它們的發(fā)送端和接收端不能夠直接相連,需要用光耦進(jìn)行隔離。光耦的選擇需要注意總線上的波特率,總線上如果傳輸高波特率的數(shù)據(jù),則光耦也應(yīng)該用相應(yīng)的高速光耦,否則數(shù)據(jù)不能夠進(jìn)行準(zhǔn)確可靠的傳輸。PS8701的轉(zhuǎn)換速率為1Mbps,能夠符合總線上250K的波特率的需要。如圖2:

圖2 CAN通信電路連接圖

3.2 CAN總線上數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)

MCP2515是CAN控制器,需要進(jìn)行波特率的初始化才能夠與CAN總線進(jìn)行通信。如果要對(duì)總線上的數(shù)據(jù)進(jìn)行濾波,使得MCP2515只能接收符合要求的數(shù)據(jù),那么還需要對(duì)接收濾波和屏蔽寄存器進(jìn)行設(shè)置。這樣就可以把那些不需要接收的數(shù)據(jù)或者干擾數(shù)據(jù)進(jìn)行過濾掉,保證了數(shù)據(jù)接收的質(zhì)量。對(duì)MCP2515進(jìn)行這些初始化后就能夠與總線進(jìn)行通信了。MCP2515把CAN收發(fā)器從總線上接收的數(shù)據(jù)存放到它的標(biāo)識(shí)符寄存器、長(zhǎng)度碼寄存器和數(shù)據(jù)寄存器中,MCU通過SPI接口讀取相應(yīng)的寄存器的值便可以得到總線上的數(shù)據(jù)。我們把這些值放到一個(gè)全局變量receivebuffer[]數(shù)組中,在后面通過對(duì)這些值的一些處理(UDP,IP封包),就可以通過GPRS模塊發(fā)送到監(jiān)控中心了。當(dāng)有數(shù)據(jù)要發(fā)送到CAN總線上,我們先定義一個(gè)全局變量transmissivebuff[],把要發(fā)送的數(shù)據(jù)先存放到這個(gè)數(shù)組中,然后把數(shù)組中的內(nèi)容通過SPI傳送到MCP2515的相應(yīng)的寄存器中,啟動(dòng)發(fā)送就可以把數(shù)據(jù)發(fā)送到總線上去了,總線上的其他智能節(jié)點(diǎn)監(jiān)測(cè)到總線上有數(shù)據(jù),就可以接收總線上的數(shù)據(jù)。這樣就實(shí)現(xiàn)了終端與總線上的數(shù)據(jù)的通信。

4、車載GPS監(jiān)控終端與監(jiān)控中心的通信

4.1 GPRS介紹

本系統(tǒng)的GPRS模塊使用的是華為的GTM900,GPRS是一種以分組交換技術(shù)為基礎(chǔ),采用IP數(shù)據(jù)網(wǎng)絡(luò)協(xié)議,傳輸高速、低速數(shù)據(jù)及信令的高效數(shù)據(jù)傳輸網(wǎng)絡(luò)。GPRS網(wǎng)絡(luò)接入速度快,提供了與現(xiàn)有數(shù)據(jù)網(wǎng)的無縫連接。由于GPRS網(wǎng)本身是一個(gè)分組型數(shù)據(jù)網(wǎng),支持TCP/IP,X.25等協(xié)議,可以直接與分組數(shù)據(jù)網(wǎng)(IP網(wǎng)或X.25網(wǎng))互通,接入速度快于電路型數(shù)據(jù)業(yè)務(wù)。

4.2 數(shù)據(jù)處理

由上一節(jié)的介紹可以知道,要使數(shù)據(jù)能夠在GPRS網(wǎng)絡(luò)上傳輸,必須要對(duì)數(shù)據(jù)進(jìn)行處理,把數(shù)據(jù)處理成符合IP網(wǎng)絡(luò)協(xié)議的格式,這樣數(shù)據(jù)才能夠通過GPRS傳送到監(jiān)控中心去?;谏厦娴目紤],在應(yīng)用層用UDP協(xié)議對(duì)數(shù)據(jù)進(jìn)行打包,在網(wǎng)絡(luò)層使用IP協(xié)議對(duì)數(shù)據(jù)進(jìn)行打包,打包后的數(shù)據(jù)通過MCU發(fā)送到GTM900的RXD0管腳,由GPRS網(wǎng)絡(luò)發(fā)送到監(jiān)控中心去。我們假設(shè)從CAN總線接收到的數(shù)據(jù)transmissivebuff[]={0x19,0x40,0x08,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11},通過下面的UDP打包和IP打包成符合發(fā)送要求的數(shù)據(jù)。

4.2.1 UDP協(xié)議的介紹及數(shù)據(jù)的封包

UDP協(xié)議是英文User Datagram Protocol的縮寫,即用戶數(shù)據(jù)報(bào)協(xié)議,它是一個(gè)無連接協(xié)議,傳輸數(shù)據(jù)之前源端和終端不建立連接,當(dāng)它想傳送時(shí)就簡(jiǎn)單地去抓取來自應(yīng)用程序的數(shù)據(jù),并盡可能快地把它扔到網(wǎng)絡(luò)上。在發(fā)送端,UDP傳送數(shù)據(jù)的速度僅僅是受應(yīng)用程序生成數(shù)據(jù)的速度、計(jì)算機(jī)的能力和傳輸帶寬的限制;在接收端,UDP把每個(gè)消息段放在隊(duì)列中,應(yīng)用程序每次從隊(duì)列中讀一個(gè)消息段。它的信息包的標(biāo)題很短,只有8個(gè)字節(jié),我們?cè)谝l(fā)送的數(shù)據(jù)的前面加上8個(gè)字節(jié)的UDP的信息包,就完成了UDP協(xié)議的封包。

4.2.2 IP協(xié)議的簡(jiǎn)介及數(shù)據(jù)的封包

IP協(xié)議位于網(wǎng)絡(luò)層,它提供了不可靠的、無連接的數(shù)據(jù)報(bào)傳輸機(jī)制。它把經(jīng)過UDP協(xié)議封包的數(shù)據(jù)加上IP協(xié)議的信息頭,使整個(gè)數(shù)據(jù)符合在GPRS上傳輸?shù)母袷?,這樣數(shù)據(jù)就能夠通過GPRS傳送到監(jiān)控中心去,監(jiān)控中心對(duì)接收過來的數(shù)據(jù)進(jìn)行解析,得到最后transmissivebuff[]中的數(shù)據(jù)。圖3就是經(jīng)過UDP和IP封包后的數(shù)據(jù)應(yīng)有的格式:

圖3 IP信息包+UDP信息包+發(fā)送的數(shù)據(jù)

5、系統(tǒng)的總體調(diào)試及結(jié)果

我們使用周立功的CAN232MB智能協(xié)議轉(zhuǎn)換器做為CAN總線上的智能節(jié)點(diǎn),它的CANH引腳和終端的B引腳相連,CANL引腳和終端的A引腳相連,并把CAN232MB的波特率設(shè)置為250K,使之和MCP2515中設(shè)置的波特率相同。CAN232MB有一個(gè)串口連接到計(jì)算機(jī)上,打開串口調(diào)試助手,用來接收中心發(fā)送到這個(gè)智能節(jié)點(diǎn)的數(shù)據(jù)和發(fā)送這個(gè)智能節(jié)點(diǎn)的數(shù)據(jù)到中心去。另外為了能夠直觀的看到中心能不能接收和發(fā)送數(shù)據(jù),我們用網(wǎng)絡(luò)調(diào)試助手來查看接收的數(shù)據(jù)和發(fā)送數(shù)據(jù),但需要根據(jù)程序中設(shè)置的相應(yīng)的端口號(hào)來進(jìn)行設(shè)置。根據(jù)上面的要求設(shè)置后我們就可以進(jìn)行調(diào)試了。

在串口調(diào)試助手中我們發(fā)送8個(gè)十六進(jìn)制數(shù)據(jù)(0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11)到 CAN總線上,終端從CAN總線上收到這11個(gè)數(shù)據(jù),包括2個(gè)字節(jié)的標(biāo)識(shí)符、1個(gè)字節(jié)的數(shù)據(jù)長(zhǎng)度和8個(gè)字節(jié)的數(shù)據(jù)。這11個(gè)數(shù)據(jù)經(jīng)過UDP協(xié)議、IP協(xié)議的封包發(fā)送到GTM900模塊中去,通過GPRS發(fā)送的監(jiān)控中心去。在網(wǎng)絡(luò)調(diào)試助手上我們就可以收到這些數(shù)據(jù)。

圖4 監(jiān)控中心接收的數(shù)據(jù)

在圖4中,我們看到監(jiān)控中心接收到了一串?dāng)?shù)字,00 16 23 D6 B9 E8 1A 02 00 4F 82 19 40 08 11 11 11 11 11 11 11 11,其中00 16 23 D6 B9 E8 1A 02 00 4F 82是自己規(guī)定的協(xié)議的一些信息頭,19 40兩個(gè)字節(jié)是發(fā)送數(shù)據(jù)的智能節(jié)點(diǎn)的標(biāo)識(shí)符,當(dāng)總線上的智能節(jié)點(diǎn)有多個(gè)的話,這個(gè)用于區(qū)分是總線上的哪個(gè)智能節(jié)點(diǎn)發(fā)來的數(shù)據(jù),08是發(fā)送數(shù)據(jù)的個(gè)數(shù),后面的8個(gè)11就是智能節(jié)點(diǎn)發(fā)送過來的數(shù)據(jù)??梢钥吹剑珻AN總線上的智能節(jié)點(diǎn)發(fā)送的數(shù)據(jù)準(zhǔn)確的傳送到監(jiān)控中心來了。

在網(wǎng)絡(luò)調(diào)試助手中發(fā)送三個(gè)字節(jié)的數(shù)據(jù)AA,BB,CC到總線的智能節(jié)點(diǎn)上,在發(fā)送區(qū)域的AA,BB,CC數(shù)據(jù)前面的00 0E 23 D6 B9 E8 1A 02 00 00 17是自己封裝的協(xié)議。把這些數(shù)據(jù)通過監(jiān)控中心發(fā)送到CAN總線上被CAN總線上的其他智能節(jié)點(diǎn)所接收。

在圖5中,接收到的11個(gè)數(shù)據(jù),第一個(gè)數(shù)據(jù)是數(shù)據(jù)段的長(zhǎng)度,第二、三個(gè)數(shù)據(jù)是標(biāo)識(shí)符,后面8個(gè)中的第2,3,4是中心發(fā)來的數(shù)據(jù),55和AA是終端發(fā)給CAN總線的心跳指令。最后4個(gè)數(shù)據(jù)保留不使用,默認(rèn)為0??梢钥吹奖O(jiān)控中心發(fā)送過來的數(shù)據(jù)準(zhǔn)確的傳到CAN總線上的智能節(jié)點(diǎn)中,并且被保存在MCU的EEPROM中,保證掉電數(shù)據(jù)不丟失。

圖5 CAN總線上的智能節(jié)點(diǎn)接收的數(shù)據(jù)

6、總結(jié)

從上面的介紹可以看到,監(jiān)控中心和汽車CAN總線上的其他智能節(jié)點(diǎn)能夠很好的進(jìn)行通訊,這樣監(jiān)控中心就能夠及時(shí)的知道汽車上各儀表的數(shù)字以及各個(gè)重要器件的信息了,并且能夠發(fā)送相應(yīng)的控制命令進(jìn)行控制。這樣監(jiān)控中心通過車載GPS監(jiān)控終端對(duì)車輛進(jìn)行了很好的監(jiān)控。

[1]石琦文、孫曉民.車用CAN總線網(wǎng)絡(luò)快速原型的設(shè)計(jì)實(shí)現(xiàn)[J],微計(jì)算機(jī)信息,2006年第2-2期,223-225頁。

[2]張專成,鄒濤.一種基于CAN總線的集散型火災(zāi)報(bào)警控制系統(tǒng)[J],嵌入式網(wǎng)絡(luò)技術(shù),2005.7。

The Data Transmission Implementation of the GPSMonitoring System Based on CAN Bus

NIE Ping-you
(Hunan Industry Polytechnic,Changsha410208,Hunan)

Theautomotive GPSmonitor systemin thispaper ischosen MCP2515 as CANbuscontroller and MCP2551 as CANbustransceiver,it introduces theimplementation method of thedata transmission not only between the monitor terminal and the intelligent node in CANbus,but also between the monitor terminal and themonitor centre.

CANbus;MCP2515;automotive GPS;IPprotocal

TP277

B

1671-5004(2011) 04-0010-03

2011-5-13

聶平由(1974-),男,湖南雙峰人,湖南工業(yè)職業(yè)技術(shù)學(xué)院電氣工程系講師,主要從事微機(jī)控制工程與應(yīng)用研究。

猜你喜歡
封包字節(jié)總線
中藥封包在急診老年急性胃腸炎患者中的臨床應(yīng)用
No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
護(hù)膚 巧用保鮮膜
No.10 “字節(jié)跳動(dòng)手機(jī)”要來了?
無沖突規(guī)則校園網(wǎng)絡(luò)安全系統(tǒng)的設(shè)計(jì)
基于PCI Express總線的xHC與FPGA的直接通信
機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計(jì)
簡(jiǎn)談MC7字節(jié)碼
多通道ARINC429總線檢查儀
基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計(jì)