• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      CAN總線系統(tǒng)測試

      2013-09-12 01:49:50尹冀波徐宏祥
      微處理機(jī) 2013年1期
      關(guān)鍵詞:配置文件寄存器隊(duì)列

      尹冀波,耿 爽,徐宏祥,李 賀

      (中國電子科技集團(tuán)公司第四十七研究所,沈陽 110032)

      1 引言

      CAN,全稱為Controller Area Network,即控制器局域網(wǎng),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。由CAN總線構(gòu)成的單一網(wǎng)絡(luò)中,理論上可以掛接無數(shù)個(gè)節(jié)點(diǎn)。實(shí)際應(yīng)用中,節(jié)點(diǎn)數(shù)目受網(wǎng)絡(luò)硬件的電氣特性所限制。CAN可提供高達(dá)1Mbit/s的數(shù)據(jù)傳輸速率,這使實(shí)時(shí)控制變得非常容易。由于CAN總線具有很高的實(shí)時(shí)性能,因此,CAN已經(jīng)在汽車工業(yè)、航空工業(yè)、工業(yè)控制、安全防護(hù)等領(lǐng)域中得到了廣泛應(yīng)用。

      經(jīng)過測試,介紹一種基于PC機(jī)控制CAN網(wǎng)絡(luò)節(jié)點(diǎn)的方法,該方法在實(shí)際應(yīng)用中取得了很好的效果。也可以配合其它電路一起使用,用于電路測試與其它整機(jī)配套使用。

      2 CAN2.0B標(biāo)準(zhǔn)幀格式

      CAN的高層協(xié)議是一種在現(xiàn)有的物理層和數(shù)據(jù)鏈路層等底層協(xié)議之上實(shí)現(xiàn)的協(xié)議,高層協(xié)議是在CAN規(guī)范的基礎(chǔ)上發(fā)展起來的應(yīng)用層。在許多系統(tǒng)中,可以制定一個(gè)合適的應(yīng)用層,相關(guān)組織已經(jīng)研究并開放了應(yīng)用層標(biāo)準(zhǔn),以使系統(tǒng)的綜合應(yīng)用變得十分容易。

      本系統(tǒng)根據(jù)實(shí)際需求,采用CAN2.0B標(biāo)準(zhǔn)幀格式。CAN標(biāo)準(zhǔn)幀信息為11個(gè)字節(jié),包括兩部分:信息和數(shù)據(jù)部分。前3個(gè)字節(jié)為信息部分。字節(jié)1為幀信息。第7位 FF表示幀格式,在標(biāo)準(zhǔn)幀中,F(xiàn)F=0;第6位RTR表示幀的類型,RTR=0表示為數(shù)據(jù)幀,RTR=1表示為遠(yuǎn)程幀;DLC表示在數(shù)據(jù)幀時(shí)實(shí)際的數(shù)據(jù)長度。字節(jié)2、3為報(bào)文識別碼,11位有效。字節(jié)4-11為數(shù)據(jù)幀的實(shí)際數(shù)據(jù),遠(yuǎn)程幀時(shí)無效。

      在2.0B版本中,CAN控制器的標(biāo)志符長度可以是11位或29位。遵循CAN2.0B協(xié)議的CAN控制器可以發(fā)送和接收11位標(biāo)識符的標(biāo)準(zhǔn)格式報(bào)文,或29位標(biāo)識符的擴(kuò)展格式報(bào)文。如果禁止CAN2.0B,則CAN控制器只能發(fā)送和接收11位標(biāo)識符的標(biāo)準(zhǔn)格式報(bào)文,而忽略擴(kuò)展格式的報(bào)文結(jié)構(gòu),但不會出現(xiàn)錯(cuò)誤。

      CAN2.0B標(biāo)準(zhǔn)幀格式的解析,如表1所示。

      表1 CAN2.0B標(biāo)準(zhǔn)幀格式

      3 測試軟件系統(tǒng)設(shè)計(jì)

      3.1 模塊設(shè)計(jì)

      測試軟件系統(tǒng)按功能可以分為驅(qū)動(dòng)模塊、消息隊(duì)列模塊、CAN節(jié)點(diǎn)模塊、配置模塊、核心處理模塊、控制模塊六個(gè)模塊,如圖1所示。

      圖1 測試軟件系統(tǒng)模塊設(shè)計(jì)圖

      3.1.1 驅(qū)動(dòng)模塊

      驅(qū)動(dòng)模塊主要負(fù)責(zé)在系統(tǒng)異常的情況下復(fù)位CAN卡,軟件卸載之前關(guān)閉CAN卡,通過適配器接收和發(fā)送數(shù)據(jù),獲取CAN卡接收緩沖區(qū)里面已經(jīng)接收到的CAN幀的數(shù)量。軟件運(yùn)行之前啟動(dòng)CAN卡,在系統(tǒng)啟動(dòng)之后調(diào)整CAN卡參數(shù),讀取CAN卡硬件信息,讀取CAN控制器信息,包括:模式寄存器、狀態(tài)寄存器、仲裁丟失寄存器、錯(cuò)誤寄存器、錯(cuò)誤警告限制寄存器、接收錯(cuò)誤計(jì)數(shù)寄存器和發(fā)送錯(cuò)誤計(jì)數(shù)寄存器。

      3.1.2 消息隊(duì)列模塊

      消息隊(duì)列模塊即緩沖器,起到防止消息浪涌的作用。在具體設(shè)計(jì)時(shí),需要建立兩個(gè)消息隊(duì)列:發(fā)送隊(duì)列和接收隊(duì)列。需要特別說明的是,隊(duì)列里面的元素必須符合CAN消息的數(shù)據(jù)結(jié)構(gòu)。此外,在接收和發(fā)送CAN消息的時(shí)候必須進(jìn)行讀寫鎖的保護(hù)處理。

      3.1.3 配置模塊

      配置模塊起到修改CAN卡參數(shù)的作用。該模塊的主要功能有:①生成缺省XML配置文件;②讀寫XML配置文件;③驗(yàn)證XML配置文件;④保存和獲取CAN卡的類型、CAN卡索引和CAN卡端口索引。

      3.1.4 CAN 節(jié)點(diǎn)模塊

      CAN節(jié)點(diǎn)模塊負(fù)責(zé)建立若干CAN節(jié)點(diǎn)表,反映各個(gè)CAN節(jié)點(diǎn)的生存狀態(tài)。根據(jù)上層模塊申請,添加和撤銷回調(diào)指針和節(jié)點(diǎn)標(biāo)識。接到各個(gè)CAN節(jié)點(diǎn)發(fā)來的Reset復(fù)位信號,查找該節(jié)點(diǎn)所擁有的標(biāo)識,然后根據(jù)路由表找到對應(yīng)的回調(diào)指針,通知相應(yīng)的上層軟件模塊。在軟件實(shí)際運(yùn)行時(shí),調(diào)用該模塊更改CAN節(jié)點(diǎn)需求值,獲取該節(jié)點(diǎn)對應(yīng)的生存狀態(tài)。3.1.5 核心處理模塊

      核心處理模塊是整個(gè)系統(tǒng)的關(guān)鍵模塊,它主要負(fù)責(zé)對流經(jīng)的所有數(shù)據(jù)進(jìn)行準(zhǔn)確識別和分類。該模塊由五部分組成:工作處理、命令發(fā)送、消息接收、消息分發(fā)、生存監(jiān)測。工作處理負(fù)責(zé)聲明該模塊當(dāng)前狀態(tài),建立路由表,獲取XML配置文件信息,調(diào)整CAN卡需求,初始化CAN卡,啟動(dòng)命令發(fā)送、消息接收、消息分發(fā)和生存監(jiān)測四項(xiàng)任務(wù)。命令發(fā)送負(fù)責(zé)獲取命令隊(duì)列的元素,將命令轉(zhuǎn)化為CAN幀,填充發(fā)送隊(duì)列,提交CAN幀到硬件接口。消息接收負(fù)責(zé)監(jiān)測消息隊(duì)列的元素,判斷CAN幀的類型,轉(zhuǎn)換CAN幀到命令格式送到接收隊(duì)列。消息分發(fā)負(fù)責(zé)根據(jù)回調(diào)指針處理所有接收到的CAN消息,如果運(yùn)行失敗則修改路由表,并發(fā)出警告提示。生存監(jiān)測每隔一定時(shí)間,廣播一個(gè)特種CAN幀并且檢查路由表,如果對應(yīng)的連接狀態(tài)為假,使用回調(diào)指針發(fā)出通信錯(cuò)誤消息。

      3.1.6 控制模塊

      控制模塊負(fù)責(zé)確定源節(jié)點(diǎn)、選擇CAN節(jié)點(diǎn),發(fā)出CAN公有及私有命令參數(shù),記錄時(shí)間和CAN幀長度??刂颇K還負(fù)責(zé)解析收到的CAN消息,維護(hù)發(fā)送列表和接收列表,獲取CAN卡的PCB和MCU消息,提示各個(gè)CAN節(jié)點(diǎn)的生存狀態(tài)。

      3.2 系統(tǒng)流程

      CAN總線系統(tǒng)測試流程如下:

      (1)系統(tǒng)打開之后,首先監(jiān)測各個(gè)功能模塊的狀態(tài),檢查提示信息。

      (2)如果配置文件出現(xiàn)異常情況,建立缺省配置文件。

      (3)調(diào)整CAN卡參數(shù),獲取CAN控制器的各種寄存器狀態(tài)和CAN卡的消息。

      (4)觀察CAN節(jié)點(diǎn)的生存狀態(tài),如果節(jié)點(diǎn)處于在線狀態(tài),可以通過控制模塊下達(dá)命令。

      (5)核心處理模塊接收到命令,進(jìn)行格式轉(zhuǎn)換,命令由CAN卡發(fā)送到CAN總線。

      (6)CAN節(jié)點(diǎn)獲取到屬于自身的命令,進(jìn)行解析,根據(jù)命令內(nèi)容執(zhí)行相應(yīng)任務(wù)。

      (7)CAN節(jié)點(diǎn)實(shí)時(shí)監(jiān)測任務(wù)的執(zhí)行狀態(tài),并且將執(zhí)行結(jié)果發(fā)送到CAN總線上的控制機(jī)。

      (8)接到CAN卡傳送來的CAN消息,核心處理模塊進(jìn)行解析。除了特種CAN幀之外,所有的CAN幀都要發(fā)送到對應(yīng)的上層模塊。

      (9)控制模塊接到CAN消息之后進(jìn)行解析,判定CAN消息的來源以及內(nèi)容。

      4 改進(jìn)

      該設(shè)計(jì)已經(jīng)在作者所用的項(xiàng)目里面得到應(yīng)用,達(dá)到了滿足實(shí)際需求的目的,其中各種測試在硬件平臺上驗(yàn)證時(shí)工作正常。

      在下一步的改進(jìn)中,在現(xiàn)有基礎(chǔ)上,考慮應(yīng)用CAN2.0B擴(kuò)展幀以增加所攜帶的數(shù)據(jù)載荷,提高系統(tǒng)的穩(wěn)定性;進(jìn)一步優(yōu)化軟件算法,提高測試效率。

      [1]CAN History[M].Micro System Corporation,2001.

      [2]廣州周立功單片機(jī)發(fā)展有限公司.非智能單通道CAN接口卡產(chǎn)品數(shù)據(jù)手冊[M].廣州周立功單片機(jī)發(fā)展有限公司,2007.

      [3]潘愛民.COM原理與應(yīng)用[M].北京:清華大學(xué)出版社,2000.

      [4]劉曉華.精通MFC[M].北京:電子工業(yè)出版社,2003.

      猜你喜歡
      配置文件寄存器隊(duì)列
      提示用戶配置文件錯(cuò)誤 這樣解決
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      隊(duì)列里的小秘密
      基于多隊(duì)列切換的SDN擁塞控制*
      軟件(2020年3期)2020-04-20 00:58:44
      搭建簡單的Kubernetes集群
      互不干涉混用Chromium Edge
      在隊(duì)列里
      忘記ESXi主機(jī)root密碼怎么辦
      豐田加速駛?cè)胱詣?dòng)駕駛隊(duì)列
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      思南县| 浑源县| 定安县| 浦江县| 香港 | 叶城县| 阳原县| 特克斯县| 新余市| 益阳市| 金堂县| 平乐县| 东乡| 宁海县| 九龙坡区| 芷江| 佳木斯市| 宜阳县| 和田市| 崇仁县| 铁岭市| 永安市| 章丘市| 深圳市| 嘉兴市| 桦川县| 屏南县| 喀什市| 常州市| 大厂| 新河县| 嘉荫县| 广昌县| 宜城市| 化州市| 谢通门县| 北辰区| 兰溪市| 濮阳市| 阜阳市| 工布江达县|