專利名稱:一種基于 can 技術(shù)的汽車儀表內(nèi)部數(shù)據(jù)傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于CAN技術(shù)的汽車儀表內(nèi)部數(shù)據(jù)傳輸方法。
背景技術(shù):
目前,從通訊角度講,我國(guó)的汽車儀表系統(tǒng)存在著幾種類型不帶任何通訊功能的低檔儀表系統(tǒng)、帶有簡(jiǎn)單通訊功能的儀表系統(tǒng)以及帶有復(fù)雜通訊功能的儀表系統(tǒng)。
在低檔儀表系統(tǒng)中,汽車各部分的運(yùn)行狀態(tài),是由各部分的傳感器將各種非電量信號(hào),如溫度、壓力等信號(hào),轉(zhuǎn)化成電壓、電流或脈沖等模擬電信號(hào)。由于模擬信號(hào)自身的傳輸特性,使得儀表對(duì)于車身各個(gè)部分的狀態(tài)的分析存在著計(jì)算速度差、精度低的缺點(diǎn)。而且信號(hào)的傳輸采用一對(duì)一方式,所以當(dāng)需要傳輸信號(hào)的車身部件比較多時(shí),相應(yīng)的傳輸通道也相應(yīng)增加,這不僅增加了生產(chǎn)成本,而且也增加了信號(hào)間相互干擾的風(fēng)險(xiǎn)。
還有一種儀表系統(tǒng),它遵守低端通信協(xié)議,如K-line、LIN等。遵守這些協(xié)議的儀表雖然具備了通訊功能,但這種能力是局部的。例如利用LIN協(xié)議可以實(shí)現(xiàn)儀表與車身其他部分的通訊,但此協(xié)議只規(guī)定了物理層的信號(hào)參數(shù),而沒(méi)有確定對(duì)報(bào)文的處理機(jī)制。其具體的消息處理機(jī)制是由汽車生產(chǎn)廠家與其產(chǎn)品供應(yīng)商內(nèi)部確定。而其他廠商的產(chǎn)品無(wú)法與之匹配,即不具有開(kāi)放性。
CAN標(biāo)準(zhǔn)是一種串行,多主的開(kāi)放性總線協(xié)議。遵守該協(xié)議的部件(在協(xié)議中稱為節(jié)點(diǎn))之間可以實(shí)現(xiàn)遠(yuǎn)距離(最長(zhǎng)可達(dá)10km)高速通訊(最快可達(dá)1Mbit/s);而且由于協(xié)議自身的規(guī)定保證數(shù)據(jù)能夠準(zhǔn)確在兩節(jié)點(diǎn)的對(duì)等協(xié)議層之間傳輸。因此,利用CAN總線可以將所有遵循協(xié)議的節(jié)點(diǎn)利用一條或兩條傳輸線連接起來(lái),而且節(jié)點(diǎn)間可以實(shí)現(xiàn)實(shí)時(shí)控制。由于總線上報(bào)文的數(shù)據(jù)域是以字節(jié)為單位進(jìn)行傳輸?shù)?,如果?jié)點(diǎn)的通訊層直接對(duì)字節(jié)進(jìn)行處理,那么數(shù)據(jù)傳輸效率會(huì)很低,會(huì)額外增加軟件開(kāi)銷,造成汽車儀表成本提升。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于CAN技術(shù)的汽車儀表內(nèi)部數(shù)據(jù)傳輸方法,減輕節(jié)點(diǎn)通訊層對(duì)數(shù)據(jù)重新組織以及分解自身需要發(fā)送信息負(fù)擔(dān),提高傳輸效率。
汽車各部件為總線上的節(jié)點(diǎn),汽車的儀表也為總線上的一個(gè)節(jié)點(diǎn)。每個(gè)汽車部件節(jié)點(diǎn)通過(guò)自身的CAN總線控制器,用發(fā)送器把儀表所需的各種性能參數(shù)數(shù)據(jù),發(fā)送到總線上。再經(jīng)過(guò)總線傳遞到儀表處,儀表通過(guò)接收器接收數(shù)據(jù),儀表每次正確收到數(shù)據(jù)后都要利用儀表節(jié)點(diǎn)的發(fā)送器通過(guò)總線向其它部件發(fā)送答應(yīng)信號(hào)。當(dāng)某個(gè)部件節(jié)點(diǎn)通過(guò)接收器收到應(yīng)答信號(hào)后表示它所發(fā)送的數(shù)據(jù)被成功接收,否則它要重新發(fā)送數(shù)據(jù)。
本發(fā)明在儀表系統(tǒng)的內(nèi)存區(qū)開(kāi)辟了一個(gè)存儲(chǔ)區(qū)。這個(gè)區(qū)域在邏輯上位于底層寄存器與通訊層程序之間,起到一個(gè)接口的作用,即寄存器與節(jié)點(diǎn)通訊層之間是通過(guò)內(nèi)存的存儲(chǔ)區(qū)進(jìn)行數(shù)據(jù)交換的。
首先,底層寄存器與內(nèi)存存儲(chǔ)區(qū)之間是以字節(jié)為傳輸對(duì)象;內(nèi)存存儲(chǔ)區(qū)與通訊層程序之間以結(jié)構(gòu)體為操作對(duì)象。而底層寄存器與節(jié)點(diǎn)通訊層程序之間不進(jìn)行直接地?cái)?shù)據(jù)傳輸。程序定義一個(gè)聯(lián)合體。在聯(lián)合體內(nèi)定義了一個(gè)與其它節(jié)點(diǎn)相對(duì)應(yīng)的結(jié)構(gòu)體。結(jié)構(gòu)體內(nèi)部的不同成員分別描述了這個(gè)節(jié)點(diǎn)的不同屬性。
在聯(lián)合體內(nèi)又定義一個(gè)和結(jié)構(gòu)體大小相同的一維字符型數(shù)組。由于在聯(lián)合體內(nèi)部的所有字節(jié)共享相同的內(nèi)存段,所以數(shù)組內(nèi)的一個(gè)或若干個(gè)元素組成了結(jié)構(gòu)體內(nèi)某個(gè)成員。
當(dāng)數(shù)據(jù)從總線進(jìn)入底層寄存器時(shí)是以字節(jié)為單位進(jìn)行存儲(chǔ)的,程序?qū)?shù)據(jù)從寄存器取出,按一定的字節(jié)順序放入內(nèi)存存儲(chǔ)區(qū)中的數(shù)組后,反映節(jié)點(diǎn)的字節(jié)數(shù)據(jù)構(gòu)成了能夠被通訊層程序方便使用的結(jié)構(gòu)體。然后這些結(jié)構(gòu)體被傳送到儀表節(jié)點(diǎn)的通訊層中。
同樣,當(dāng)儀表節(jié)點(diǎn)的通訊層要發(fā)送信息時(shí),它將信息以結(jié)構(gòu)體形式存入內(nèi)存存儲(chǔ)區(qū)中,底層程序?qū)⒔Y(jié)構(gòu)體中成員按一般數(shù)組中的元素一個(gè)一個(gè)地放入底層寄存器中。隨后,數(shù)據(jù)以字節(jié)的形式在總線上傳輸,被相應(yīng)節(jié)點(diǎn)接收。
本發(fā)明的有益效果為,大大地減輕了通訊層對(duì)數(shù)據(jù)重新組織以及分解自身需要發(fā)送信息的負(fù)擔(dān)。同時(shí),程序的可讀性以及層次性大大增強(qiáng),這為未來(lái)程序的改進(jìn)提供了一個(gè)安全和方便的環(huán)境與規(guī)范。另外,通訊層與應(yīng)用層數(shù)據(jù)兩者分屬兩個(gè)模塊,之間不得互相函數(shù)調(diào)用,不得共用變量,只能通過(guò)中間函數(shù)傳遞信息,增加了系統(tǒng)可靠性,同時(shí)方便測(cè)試。
圖1是汽車內(nèi)部總線結(jié)構(gòu)2是節(jié)點(diǎn)內(nèi)部數(shù)據(jù)傳輸結(jié)構(gòu)3是數(shù)據(jù)傳輸邏輯結(jié)構(gòu)圖具體實(shí)施方式
如圖1所示,汽車的各部件(節(jié)點(diǎn)),如發(fā)動(dòng)機(jī)、油箱、車燈、儀表等,都是汽車CAN總線上的一個(gè)節(jié)點(diǎn),它們被連接到總線上。如圖2所示,每個(gè)節(jié)點(diǎn)通過(guò)自身的CAN總線控制器和發(fā)送器把儀表所需的各種性能參數(shù)數(shù)據(jù),發(fā)送到總線上。再經(jīng)過(guò)總線傳輸?shù)絻x表處,儀表通過(guò)接收器接收數(shù)據(jù),儀表每次正確收到數(shù)據(jù)后都要利用儀表節(jié)點(diǎn)的發(fā)送器通過(guò)總線向相應(yīng)節(jié)點(diǎn)發(fā)送答應(yīng)信號(hào)。當(dāng)這個(gè)節(jié)點(diǎn)通過(guò)接收器收到應(yīng)答信號(hào)后表示數(shù)據(jù)被成功接收,否則它要重新發(fā)送數(shù)據(jù)。
例如,如圖3所示,當(dāng)發(fā)動(dòng)機(jī)節(jié)點(diǎn)要發(fā)送發(fā)動(dòng)機(jī)轉(zhuǎn)速信息給儀表時(shí),在經(jīng)總線仲裁成功后,通過(guò)發(fā)送器將信息發(fā)送至總線。
當(dāng)轉(zhuǎn)速信息從總線進(jìn)入儀表的底層寄存器時(shí),是以字節(jié)為單位進(jìn)行存儲(chǔ)的,程序?qū)?shù)據(jù)從寄存器取出,按一定的字節(jié)順序放入內(nèi)存存儲(chǔ)區(qū)。在內(nèi)存存儲(chǔ)區(qū)中,程序定義一個(gè)聯(lián)合體。在聯(lián)合體內(nèi)定義了一個(gè)與轉(zhuǎn)速信息相關(guān)的結(jié)構(gòu)體。轉(zhuǎn)速信息是結(jié)構(gòu)體內(nèi)的一個(gè)成員。在聯(lián)合體內(nèi)又定義一個(gè)和結(jié)構(gòu)體大小相同的數(shù)組。由于在聯(lián)合體內(nèi)部的所有成員共享相同的內(nèi)存段,所以數(shù)組內(nèi)的一個(gè)或若干個(gè)字符組成了結(jié)構(gòu)體內(nèi)某個(gè)成員。就這樣,反映轉(zhuǎn)速信息的字節(jié)數(shù)據(jù)構(gòu)成了能夠被通訊層程序方便使用的結(jié)構(gòu)體的一部分。含有轉(zhuǎn)速信息的結(jié)構(gòu)體被傳送至儀表通訊層。
最后,汽車儀表把從CAN總線傳輸來(lái)的數(shù)據(jù)經(jīng)過(guò)處理后,在儀表上顯示出來(lái)。通過(guò)儀表指針,LCD或LED等,駕駛者可以得知一系列的汽車狀態(tài)信息。當(dāng)發(fā)動(dòng)機(jī)轉(zhuǎn)速發(fā)生變化時(shí),利用相同的前述方法向儀表發(fā)送更改數(shù)據(jù)。
汽車上其他部件也是通過(guò)前述相同的數(shù)據(jù)傳輸方法把自身的狀態(tài)信息傳遞到儀表上。
權(quán)利要求
1.一種基于CAN技術(shù)的汽車儀表內(nèi)部數(shù)據(jù)傳輸方法,包括節(jié)點(diǎn)接收數(shù)據(jù)步驟和節(jié)點(diǎn)發(fā)送數(shù)據(jù)步驟,其特征在于采用下述步驟節(jié)點(diǎn)接收數(shù)據(jù)時(shí),數(shù)據(jù)以字節(jié)為單位從總線存入底層寄存器中,數(shù)據(jù)從底層寄存器取出,按字節(jié)順序放入內(nèi)存存儲(chǔ)區(qū)的數(shù)組中,形成結(jié)構(gòu)體,結(jié)構(gòu)體被傳送至節(jié)點(diǎn)的通訊層;節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),節(jié)點(diǎn)通訊層發(fā)出數(shù)據(jù),以結(jié)構(gòu)體為單位的數(shù)據(jù)先存入內(nèi)存存儲(chǔ)區(qū),結(jié)構(gòu)體中數(shù)據(jù)按數(shù)組中的字節(jié)放入底層寄存器中,數(shù)據(jù)以字節(jié)形式從寄存器中進(jìn)入總線。
2.如權(quán)利要求1所述的基于CAN技術(shù)的汽車儀表內(nèi)部數(shù)據(jù)傳輸方法,其特征在于,底層寄存器和內(nèi)存存儲(chǔ)之區(qū)間的數(shù)據(jù)轉(zhuǎn)換當(dāng)中,先定義一個(gè)聯(lián)合體;在聯(lián)合體內(nèi)定義了一個(gè)與物理實(shí)體相對(duì)應(yīng)的結(jié)構(gòu)體,結(jié)構(gòu)體內(nèi)部的字節(jié)分別描述物理實(shí)體的不同屬性;在聯(lián)合體內(nèi)又定義一個(gè)和結(jié)構(gòu)體大小相同的數(shù)組,這個(gè)數(shù)組與結(jié)構(gòu)體之間為字節(jié)對(duì)字節(jié)的物理關(guān)系。
全文摘要
本發(fā)明涉及一種基于CAN技術(shù)的汽車儀表內(nèi)部數(shù)據(jù)傳輸方法。節(jié)點(diǎn)接收數(shù)據(jù)時(shí),數(shù)據(jù)以字節(jié)為單位從總線存入底層寄存器中,數(shù)據(jù)從底層寄存器取出,按字節(jié)順序放入內(nèi)存存儲(chǔ)區(qū)的數(shù)組中,形成結(jié)構(gòu)體,結(jié)構(gòu)體被傳送至節(jié)點(diǎn)的通訊層;節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),節(jié)點(diǎn)通訊層發(fā)出數(shù)據(jù),以結(jié)構(gòu)體為單位的數(shù)據(jù)先存入內(nèi)存存儲(chǔ)區(qū),結(jié)構(gòu)體中數(shù)據(jù)按數(shù)組中的字節(jié)放入底層寄存器中,數(shù)據(jù)以字節(jié)形式從寄存器中進(jìn)入總線。本發(fā)明大大地減輕了通訊層對(duì)數(shù)據(jù)重新組織以及分解自身需要發(fā)送信息的負(fù)擔(dān)。同時(shí),程序的可讀性以及層次性大大增強(qiáng),這為未來(lái)程序的改進(jìn)提供了一個(gè)安全和方便的環(huán)境與規(guī)范。
文檔編號(hào)H04L12/40GK1848790SQ20051002509
公開(kāi)日2006年10月18日 申請(qǐng)日期2005年4月14日 優(yōu)先權(quán)日2005年4月14日
發(fā)明者楊毅, 施麟范, 劉志強(qiáng), 李巍 申請(qǐng)人:上海德科電子儀表有限公司