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

        ?

        汽車LIN總線數(shù)據(jù)監(jiān)視器的設(shè)計與實現(xiàn)

        2012-06-08 07:08:48沈萬松
        淮陰工學(xué)院學(xué)報 2012年3期
        關(guān)鍵詞:信號信息

        沈萬松

        (同濟大學(xué)汽車學(xué)院,上海 200092)

        0 引言

        汽車中的LIN(Local Interconnect Network)總線網(wǎng)絡(luò)又被稱為局部互連網(wǎng)絡(luò),它是在汽車CAN總線網(wǎng)絡(luò)出現(xiàn)后的又一種分布式車輛電子控制網(wǎng)絡(luò)系統(tǒng)。LIN總線具有結(jié)構(gòu)簡單,開發(fā)成本低廉等特點,為現(xiàn)有多種汽車網(wǎng)絡(luò)提供了功能上的補充,同時簡化了多種現(xiàn)存的多點解決方案,因此,它在當(dāng)今汽車電子業(yè)中被廣泛使用。在車輛電器的網(wǎng)絡(luò)布置結(jié)構(gòu)中,LIN總線主要被運用在儀表系統(tǒng)、空調(diào)、座椅、雨刮器、后視鏡、雨量/光照傳感器、天窗等汽車電器零部件中,它擔(dān)負(fù)著在各個汽車電器零部件與智能車載控制器之間傳遞數(shù)據(jù)的任務(wù)。

        對于一個優(yōu)秀的汽車電子工程師來說,在設(shè)計開發(fā)基于LIN總線的車輛電器部件及電器網(wǎng)絡(luò)的時候,需要始終了解LIN總線中傳遞的動態(tài)數(shù)據(jù)信息,并能夠及時準(zhǔn)確地捕捉到LIN總線中所傳遞的數(shù)據(jù)信息,為此,具備對LIN總線上實施信號捕捉的數(shù)據(jù)信號監(jiān)視設(shè)備是一個必不可少的工具。本文將圍繞如何設(shè)計一個有效的LIN總線數(shù)據(jù)監(jiān)視器并實現(xiàn)LIN信號的捕獲而進行一系列闡述。

        1 硬件選用與電路設(shè)計

        為了能夠滿足更加精確地監(jiān)聽LIN總線上的信號,更加快速地把接收到的數(shù)據(jù)傳遞到PC電腦,支持不同版本的LIN總線協(xié)議規(guī)則以及低功耗等設(shè)計要求,本設(shè)計選用了由埃爾姆(ELM)電子電器公司所提供的ELM633器件作為LIN總線數(shù)據(jù)監(jiān)視器的硬件主芯片,該芯片具有持續(xù)監(jiān)視一個LIN網(wǎng)絡(luò)的數(shù)據(jù)傳輸、持續(xù)轉(zhuǎn)換LIN信息幀信息以標(biāo)準(zhǔn) ASCII代碼輸出、重復(fù)發(fā)送數(shù)據(jù)至RS232接口等功能,這使得在PC或是PDA等終端設(shè)備上可以輕松實現(xiàn)LIN總線的數(shù)據(jù)讀取及后續(xù)數(shù)據(jù)分析等工作。此外,ELM633芯片支持固定的LIN總線數(shù)據(jù)通信波特率速度19200BPS,符合目前各大汽車廠商所采用的高速LIN總線數(shù)據(jù)通信的速度要求。ELM633芯片共有8個針腳,根據(jù)不同的需要有PDIP和SOIC兩種封裝方式可供設(shè)計人員進行選擇,圖1為PDIP插入式封裝形式的ELM633芯片以及針腳示意圖。

        圖1 ELM633芯片PDIP封裝形式和芯片元件針腳示意圖

        根據(jù)圖1所示,針腳PIN1(VDD)為正電源引腳,在電路中總是與電路的正極端連接,該ELM633芯片的正常供電電壓范圍在4.5伏至5.5伏之間。針腳PIN2(XT1)和PIN3(TX2)用于連接晶體振蕩器并對內(nèi)部時鐘操作電路提供定時信號,使用3.57954MHZ頻率的晶體振蕩器被連接在這兩個針腳之間,同時再使用2個推薦值為27pF的晶體負(fù)載電容分別連接在PIN2、PIN3與電路的負(fù)極之間,這樣可以保證LIN總線上有正常的數(shù)據(jù)傳送速率。針腳PIN4(Rxmode)是用來控制在RS232接收輸入端上的信號電平轉(zhuǎn)換,這為各種不同的RS232接口連接方法提供更加靈活的設(shè)置。如果在RS232接口與本芯片的PIN5(RS232Rx)引腳之間僅僅使用一個電阻連接來減少硬件成本,在這種情況下該引腳就可直接連接到電路負(fù)極,內(nèi)部邏輯電路會自動轉(zhuǎn)換信號極性。如果使用一些標(biāo)準(zhǔn)的電平轉(zhuǎn)換接口電路,如MAX232系列轉(zhuǎn)換芯片或是SN75189/MC1489等電子元器件。在這些情況下ELM633芯片的內(nèi)部轉(zhuǎn)換電路就可不被使用,通過將該針腳PIN4(Rxmode)與系統(tǒng)供電正極相連接來屏蔽內(nèi)部轉(zhuǎn)換的電路。外圍RS232接口可以直接和ELM633芯片的RS232接收輸入端進行連接。針腳 PIN5(RS232Rx)是該器件RS232接口的數(shù)據(jù)接收輸入端口,它可以通過一個電阻或是一個電平轉(zhuǎn)換器件和PC電腦上的RS232發(fā)送信號端口相連接。如果ELM633芯片發(fā)現(xiàn)該針腳處于一個激活狀態(tài),特殊的上電監(jiān)控模式被啟用以使系統(tǒng)進入完全啟動階段,在這個模式下,ELM633芯片會顯示ID字符串并立即執(zhí)行相關(guān)命令來監(jiān)視整個LIN總線上信號活動狀態(tài)。針腳PIN6(Txmode)是RS232接口的發(fā)送數(shù)據(jù)輸出引腳,在空閑階段,即沒有數(shù)據(jù)被傳送的時候,這個針腳將輸出一個高電平。針腳PIN7(LIN)是一個輸入端口,用于接收LIN總線的信號,由車輛LIN總線上傳來的信號被轉(zhuǎn)換和進行緩沖后被傳遞到該引腳,注意該引腳的輸入信號僅限于在零伏至系統(tǒng)電壓之間,因此,該引腳不可以直接連接到車輛LIN總線上。針腳PIN8(Vss)是整個器件的接地點,它應(yīng)該和整個電路的接地點相連接。為了更加快速地把LIN總線上讀取的信號傳遞到外部設(shè)備上,ELM633器件與外部PC電腦之間串口通信的速度被定為每秒57600個比特位,這個速度遠遠大于ELM633器件監(jiān)視LIN總線上數(shù)據(jù)傳輸速度19200BPS,這樣就可以保證該器件能夠足夠快地捕捉到LIN總線上的信號。

        為了使用一個標(biāo)準(zhǔn)可靠的RS232接口數(shù)據(jù)傳輸方式,本設(shè)計選用一個MAX232電平轉(zhuǎn)換芯片連接在ELM633和PC電腦的RS232接口之間,同時為了使芯片內(nèi)部電平轉(zhuǎn)換電路不被啟用,PIN4端口必須被設(shè)置為邏輯高電平。由于測試車輛上LIN總線中的信號要用到車輛上的蓄電池電壓,一般車輛蓄電池的供電電壓為12伏,而用于監(jiān)控LIN總線數(shù)據(jù)的ELM633主芯片又需要5伏的外界電壓維持其工作,那么可以借用車輛蓄電池的電壓給ELM633芯片進行供電。為此,在電路中需要設(shè)計一個12伏轉(zhuǎn)換成5伏的電壓轉(zhuǎn)換電路,78L05是一個被廣泛使用的3端正電源電壓調(diào)節(jié)器,它可以輸出5伏的固定電壓,適用于100mA電源供給的場合,另外在78L05器件的電壓輸入和輸出端口處安裝電容器進行過濾,并在電路中使用LED小燈作為可視的反饋信號,以顯示有可供使用的正極供電電源信號。圖2為LIN總線數(shù)據(jù)監(jiān)視設(shè)備的供電系統(tǒng)原理圖。

        圖2 LIN總線數(shù)據(jù)監(jiān)視系統(tǒng)供電原理圖

        在車輛LIN總線與ELM633的用于接收LIN總線的信號的針腳PIN7之間需要按圖3所示連接一個PNP晶體管,用于輸入信號的電平轉(zhuǎn)換,一個典型的CMOS輸入將電平狀態(tài)轉(zhuǎn)換為系統(tǒng)供電電壓的一半左右,即2.5伏,這可能會導(dǎo)致在汽車使用的環(huán)境中出現(xiàn)噪音問題。通過提供一個晶體管緩沖,信號輸入閥值被有效地提高到4伏左右,在增加了信號增益、電平固定和轉(zhuǎn)換的同時提高了抗噪性能。同時在LIN信號的輸入端需要使用二極管,這可以防止破壞性的反饋信號進入電路,并保護晶體管和其他電子元器件。

        圖3 LIN總線數(shù)據(jù)監(jiān)視設(shè)備電路連接原理圖

        由此可見,將LIN總線數(shù)據(jù)監(jiān)視設(shè)備中的系統(tǒng)供電電壓線Vbat、接地線GND和LIN總線,分別與車輛上的12伏蓄電池正極導(dǎo)線、接地線以及車輛LIN總線相連接,而RS232接口上的數(shù)據(jù)接收線、數(shù)據(jù)發(fā)送線和接地線分別連接到RS232的標(biāo)準(zhǔn)9針插口的2、3和5號插孔上,再與PC電腦上的9針串行口相連接,這樣便完成了LIN總線數(shù)據(jù)監(jiān)視設(shè)備的硬件連接設(shè)置,在PC電腦端上安裝相關(guān)的應(yīng)用軟件后,就可以實時獲取LIN總線上的動態(tài)數(shù)據(jù)了。

        2 LIN協(xié)議標(biāo)準(zhǔn)

        LIN標(biāo)準(zhǔn)使用的是一種串行通信協(xié)議,在很多方面和個人電腦所使用的RS232標(biāo)準(zhǔn)一樣。而在標(biāo)準(zhǔn)的RS232通信標(biāo)準(zhǔn)和LIN總線通信協(xié)議之間的區(qū)別在于LIN總線中還使用了一個“同步”信號。LIN總線的同步信號由至少13個連續(xù)位時間組成,并且都以激活狀態(tài)“0”來表示,這個至少13個連續(xù)狀態(tài)“0”位時間長度在普通的RS232系統(tǒng)標(biāo)準(zhǔn)中從來沒有出現(xiàn)過,而普通的標(biāo)準(zhǔn)RS232協(xié)議中只會出現(xiàn)一個起始位和8個數(shù)據(jù)位總共最多9個激活狀態(tài)“0”位。由此,這13個連續(xù)狀態(tài)“0”位時間長度信號就被稱為“同步”信號,它總是由LIN總線系統(tǒng)中的主控制器所產(chǎn)生,該“同步”信號的出現(xiàn)也意味著一組數(shù)據(jù)幀信息傳遞操作將要被實施。因此,一旦同步信號發(fā)生,信息幀字節(jié)信息將與RS232標(biāo)準(zhǔn)相同的方式被全部發(fā)送出去。被發(fā)送出去的每個信息幀由兩部分組成,即信息頭部分和應(yīng)答信息部分。LIN總線系統(tǒng)中的主控制器(主節(jié)點)總是發(fā)出信息頭部分,而應(yīng)答信息部分可根據(jù)主控制器是發(fā)送數(shù)據(jù)還是獲得數(shù)據(jù)的狀態(tài)分別由主控制器和LIN總線上的子控制器(子節(jié)點)來完成。

        信息頭中的第一個字節(jié)被認(rèn)為是“同步字節(jié)”,該字節(jié)的數(shù)值總是被定為0x55,這是因為該字節(jié)的信息創(chuàng)建了一個比特位“0”和比特位“1”之間的替換模式,它可以被子控制器用來執(zhí)行一個內(nèi)部定時標(biāo)定工作,這樣子控制器就可以使用廉價的RC振蕩器來實現(xiàn),硬件成本可以得到大幅降低。跟隨著同步字節(jié)之后的是“標(biāo)識字節(jié)”信息,它總是由主控制器發(fā)出,用來表述該信息的具體用途,因此,它也可以被認(rèn)為是一個命令字節(jié)。應(yīng)答信息部分出現(xiàn)在標(biāo)識字節(jié)信息之后,它通常有2個、4個、6個或是8個字節(jié)所組成,此外,在其最后還有一個“校驗和”字節(jié)。圖4顯示的是一個完整的LIN總線信息幀結(jié)構(gòu)。

        圖4 LIN總線信息幀結(jié)構(gòu)示意圖

        3 應(yīng)用軟件設(shè)計

        ELM633器件憑借一個標(biāo)準(zhǔn)的RS232串口與用戶界面進行通信聯(lián)系,串口通常也是計算機與外部設(shè)備之間的數(shù)據(jù)傳輸通道,其通信方便易行,應(yīng)用廣泛,因此本設(shè)計在Visual C++6.0下利用WINDOWS API所提供的通信函數(shù)來完成串行通信程序的編制。

        在WIN32中,串口和其他通信設(shè)備均被作為文件處理,串口的打開、關(guān)閉和讀寫等操作所有的API函數(shù)與操作文件的函數(shù)相同。利用CreateFile()函數(shù)可以打開串口,獲得串行設(shè)備句柄并對其進行通信參數(shù)設(shè)置,包括設(shè)置輸出、接收緩沖區(qū)、超時控制和事件監(jiān)視等;GetCommState()函數(shù)可以獲取當(dāng)前串口所設(shè)定的波特率數(shù)值、有無奇偶校驗、數(shù)據(jù)位和停止位信息。由于ELM633和外界設(shè)備串口通信的數(shù)據(jù)傳輸波特率設(shè)為固定值57600波特,通信參數(shù)被定為八位數(shù)據(jù)位,一位停止位、沒有校驗位以及沒有握手信號,因此,如果當(dāng)前設(shè)備與ELM633器件相連接的串口通信參數(shù)數(shù)據(jù)不符合要求,可以通過BCD結(jié)構(gòu)體并使用SetCommState()函數(shù)命令來設(shè)置當(dāng)前串口的通信參數(shù),以滿足ELM633器件串口通信的參數(shù)要求。

        在串口通信參數(shù)設(shè)置好以后,就可以編寫發(fā)送給ELM633器件指令的相關(guān)程序。在ELM633器件中規(guī)定了使用兩個字母“AT”開頭的指令集,比如有詢問當(dāng)前監(jiān)視LIN總線的數(shù)據(jù)通信波特率速度,設(shè)置 ELM633器件默認(rèn)狀態(tài)值,顯示當(dāng)前ELM633器件的ID標(biāo)識信息字符串,復(fù)位整個ELM633器件,監(jiān)視總線上的所有信息幀以及監(jiān)視單個特定標(biāo)識信息幀等指令。在VC中要實現(xiàn)串口數(shù)據(jù)的發(fā)送可以使用WriteFile()函數(shù),對于使用異步輸入輸出的操作方式,可以同時對一個串行設(shè)備進行讀寫操作,在使用該發(fā)送指令的時候,最后一個參數(shù)必須是一個指向&overlapped結(jié)構(gòu)的指針,可通過&overlapped結(jié)構(gòu)來獲得當(dāng)前的操作狀態(tài)。因此可以先根據(jù)要求定義一個用于存放發(fā)送命令字節(jié)的數(shù)組,對數(shù)組中的每個數(shù)組元素進行賦值,然后再運用WriteFile()函數(shù)將特定的AT指令發(fā)送給ELM633器件。數(shù)據(jù)接收的任務(wù)由ReadFile()函數(shù)來完成,該函數(shù)從串口接收緩沖區(qū)中讀取數(shù)據(jù),在讀取數(shù)據(jù)前,先用ClearCommError()函數(shù)獲得接收緩沖區(qū)中的字節(jié)數(shù)。另外,在程序中還要開一個用于接收數(shù)據(jù)的線程對串口接收數(shù)據(jù)事件進行監(jiān)視,當(dāng)監(jiān)視事件發(fā)生時,該線程可將這個事件登記到對事件進行處理的窗口類中。在整個應(yīng)用程序結(jié)束或不再使用串行設(shè)備的情況下應(yīng)該將串行口關(guān)閉,可以利用CloseHandle()函數(shù)來關(guān)閉串口以及事件句柄操作。圖5為汽車LIN總線數(shù)據(jù)監(jiān)視器軟件設(shè)計流程圖。

        圖5 汽車LIN總線數(shù)據(jù)監(jiān)視器軟件設(shè)計流程圖

        4 功能實現(xiàn)

        針對ELM633器件,本設(shè)計通過使用Visual C++6.0編程軟件開發(fā)了LIN總線數(shù)據(jù)監(jiān)視設(shè)備的應(yīng)用軟件LIN-BUS-Monitor。在該軟件的主界面上可以實現(xiàn)對串行口及其通信參數(shù)的設(shè)置,開始或停止接收數(shù)據(jù)按鈕發(fā)送針對硬件的操作命令,包括版本信息查詢,監(jiān)視整個總線上的動態(tài)數(shù)據(jù)以及只監(jiān)視特定標(biāo)識信息幀數(shù)據(jù)等功能。

        開啟軟件后首先要完成串口號的選擇和正確波特率參數(shù)的設(shè)置。在串口號輸入框中輸入串口號“COM1”數(shù)據(jù),然后點擊“COM Config”按鈕后,在串口配置顯示框中會顯示出當(dāng)前串口的波特率、停止位、數(shù)據(jù)位和校驗位信息,如果此時的波特率信息不符合要求,可以在波特率設(shè)定輸入框中輸入波特率數(shù)值信息,并按“Set Baud”按鈕對其進行設(shè)定,然后再次點擊讀取串口配置信息按鈕后,新狀態(tài)的波特率參數(shù)會顯示在串口配置顯示框中。

        在正確設(shè)置了串口配置信息之后,就可以選擇發(fā)送設(shè)置區(qū)域中的按鈕選項來對ELM633器件發(fā)送指令了。如果要監(jiān)視當(dāng)前LIN總線上所有的信息幀數(shù)據(jù),可以點擊發(fā)送設(shè)置中的監(jiān)視全部信息(Monitor ALL)按鈕,此時在發(fā)送指令信息框中就會出現(xiàn)“Monitoring ALL Frame Status……OK!”的字樣,同時在接收數(shù)據(jù)區(qū)域中立刻會顯示出當(dāng)前LIN總線上所有被監(jiān)視到的LIN總線數(shù)據(jù)信息,如果想要監(jiān)視固定單個信息幀數(shù)據(jù)變化的情況,可以通過輸入所需要特別監(jiān)視的信息幀識別號ID(十六進制),然后單擊“Monitor ONE”按鈕來監(jiān)視特定單個識別號的信息幀數(shù)據(jù),這個功能可以滿足使用者對單個LIN總線信息幀數(shù)據(jù)內(nèi)容進行測試分析,操作顯示界面如圖6所示。

        圖6 LIN總線上所有信息幀顯示和LIN總線識別號為0xE2的單個信息幀數(shù)據(jù)顯示

        5 總結(jié)

        本設(shè)計通過對ELM633芯片及外圍電路的搭建,創(chuàng)建了適用于監(jiān)視車輛LIN總線數(shù)據(jù)的硬件環(huán)境,配合PC電腦終端上安裝的LIN總線數(shù)據(jù)監(jiān)視應(yīng)用軟件,實現(xiàn)了對LIN總線上所有信息幀的監(jiān)視或指定單個標(biāo)識符信息幀的監(jiān)視操作。該LIN總線數(shù)據(jù)監(jiān)視工具的實現(xiàn)有助于車輛設(shè)計開發(fā)工程師對LIN總線信號測試和數(shù)據(jù)分析,也有助于對車輛LIN總線感興趣的工程人員更快、更直觀地學(xué)習(xí)LIN總線的相關(guān)知識。LIN總線數(shù)據(jù)監(jiān)視器的實現(xiàn)具有一定的實用價值。

        [1]侯俊杰.深入淺出Windows MFC程序設(shè)計[M].武漢:華中理工大學(xué)出版社,1998.

        [2]李景峰.Visual C++串口通信技術(shù)詳解[M].北京:機械工業(yè)出版社,2010.

        [3]劉俊萍.汽車電腦與總線技術(shù)[M].武漢:武漢理工大學(xué)出版社出版,2009.

        [4]周韌研,商斌.Visual C++串口通信開發(fā)入門與編程實踐[M].北京:電子工業(yè)出版社,2009.

        [5]李朝青.PC機及單片機數(shù)據(jù)通信技術(shù)[M].北京:北京航空航天大學(xué)出版社,2000.

        猜你喜歡
        信號信息
        信號
        鴨綠江(2021年35期)2021-04-19 12:24:18
        完形填空二則
        孩子停止長個的信號
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        基于LabVIEW的力加載信號采集與PID控制
        一種基于極大似然估計的信號盲抽取算法
        展會信息
        中外會展(2014年4期)2014-11-27 07:46:46
        高處信號強
        信息
        健康信息
        祝您健康(1987年3期)1987-12-30 09:52:32
        亚洲一区二区婷婷久久| 少妇愉情理伦片高潮日本| 国产香蕉尹人在线观看视频| 久精品国产欧美亚洲色aⅴ大片| 国产女主播视频一区二区三区| 国产桃色一区二区三区| 国产精品久久久久9999小说| 国产精品国产三级农村妇女| 秋霞国产av一区二区三区| 亚洲一区二区日韩精品在线| 国产丶欧美丶日本不卡视频| 亚洲白白色无码在线观看| 亚洲一二三四五区中文字幕| 91亚洲国产成人精品一区.| 亚洲乱亚洲乱妇50p| 亚洲手机国产精品| 热门精品一区二区三区| 国产精华液一区二区三区| 精品无码久久久久成人漫画| 日韩丝袜亚洲国产欧美一区 | 女同在线网站免费观看| 国产精品成熟老女人| 性欧美大战久久久久久久久| 欧洲国产成人精品91铁牛tv| 日韩在线一区二区三区中文字幕| 玩弄放荡人妇系列av在线网站| 色先锋资源久久综合5566| 国产成人AⅤ| 精品在线视频在线视频在线视频| 久久久www成人免费精品| 久草国产视频| 国产在线视频一区二区三区| 欧美老熟妇乱xxxxx| 亚洲性无码av在线| 三级黄色片一区二区三区| 国产亚洲一区二区三区夜夜骚| 91三级在线观看免费| 成 人免费va视频| 亚洲色偷偷综合亚洲AVYP| 国产人妖伦理视频在线观看| 国产又粗又猛又黄又爽无遮挡|