<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于T89C51CC0X系列的程序下載器與通訊調試器設計

基于T89C51CC0X系列的程序下載器與通訊調試器設計

作者: 時(shí)間:2016-11-19 來(lái)源:網(wǎng)絡(luò ) 收藏
在電子產(chǎn)品的各種通訊方式中,CAN(Controller Area Network)總線(xiàn)以其高可靠性、實(shí)時(shí)性、傳輸距離遠的特點(diǎn)得到廣泛的應用,已經(jīng)成為許多高檔汽車(chē)(如奔馳、寶馬等)車(chē)電系統的總線(xiàn)標準。于是出現了許多內部集成CAN控制器的單片機,如Atmel公司的T89C51CC0X系列單片機就是其中性?xún)r(jià)比較高的一款,它具有豐富的內部資源,支持CAN方式的在線(xiàn)編程。我們在使用此系列產(chǎn)品的過(guò)程中,針對其應用普遍但編程器較少的特點(diǎn),開(kāi)發(fā)了一款基于T89C51CC01CA芯片的CAN程序下載和CAN節點(diǎn)調試器,它既能對同類(lèi)單片機進(jìn)行編程,又能通過(guò)CAN總線(xiàn)對具有CAN通訊功能的設備進(jìn)行調試。

2.系統結構框圖
2.1 系統原理框圖。如圖1所示,PC機通過(guò)高速的USB方式或低速的UART方式連接到下載調試器上,下載調試器將PC的消息封裝成CAN命令幀的形式轉發(fā),完成下載功能或CAN節點(diǎn)調試功能。

本文引用地址:http://dyxdggzs.com/article/201611/318183.htm


2.2 調試器框圖。如圖1所示,當使用CAN調試器功能時(shí),在CAN總線(xiàn)上可以?huà)旖佣鄠€(gè)設備。CAN調試器作為一個(gè)智能終端,參與總線(xiàn)的運行。
2.3下載器原理框圖。如圖2所示,當使用下載器功能時(shí),用戶(hù)可以選擇CAN下載方式或串口下載方式,但為了保證下載的正確性,每次只允許連接一個(gè)從設備。

圖2:下載器原理框圖
3.下載調試器硬件及框圖
下載調試器連接PC機和CAN總線(xiàn)上的節點(diǎn),完成數據流格式的轉換,并且利用內部的RAM空間對上/下行數據流的速度進(jìn)行緩沖匹配。整個(gè)硬件主要分成四個(gè)部分:主控器件、通訊轉換芯片、功能控制部分和電源部分。硬件框圖和電路圖分別為圖3和圖4。


3.1 主控器件
主控芯片為Atmel公司的T89C51CC01芯片,該芯片采用51內核技術(shù),與其它單片機相比具有很多的優(yōu)勢:
?豐富的內部資源: 32Kbytes 片內Flash、 256bytes片內RAM、 1Kbytes片內XRAM、2Kbytes片內EEPROM、2Kbytes片內程序引導區、八通道10位AD等。
?內部集成完全支持V2.0A/V2.0B標準的CAN控制器,該控制器具有15個(gè)獨立的郵箱,每個(gè)郵箱具有多種工作模式。消息的接收、發(fā)送、校驗過(guò)程完全通過(guò)硬件來(lái)完成,不需要用戶(hù)的干預。
?片內程序引導區支持ISP(In-Systerm Programming)和IAP(In-Application Programming)功能,使程序下載變得非常容易。
3.2 通訊轉換芯片
下載調試器與PC機的接口芯片為PL2303,它完全支持USB協(xié)議V1.1,能夠自動(dòng)完成USB數據格式和UART數據格式間的轉換。并且為了匹配兩種方式的速度,該芯片分別為上傳和下傳的數據流配置了256字節的RAM。CAN總線(xiàn)的驅動(dòng)芯片為ATA6660,它將TTL電平轉換為差分信號輸出,在通訊距離達到10km時(shí),傳輸速率仍可達到50kbit/s。
3.3 控制電路
控制電路主要有三個(gè)功能:下載器功能或調試器功能選擇,串口下載方式或CAN下載方式選擇,硬件復位條件控制。
4.編程器功能
4.1 編程對象
編程器的主要服務(wù)對象為一系列支持CAN下載或串口下載的器件,如T89C51CC01/02/03等。T89C51CC01在保留51系列并行下載方式的基礎上,又擴展了串口UART或CAN 的ISP(在線(xiàn))下載方式。 T89C51CC01有兩個(gè)系列,T89C51CC01UA芯片的程序引導區在生產(chǎn)時(shí)固化了UART引導程序,支持UART方式的在線(xiàn)下載功能;T89C51CC01CA芯片的程序引導區固化了CAN引導程序,支持CAN總線(xiàn)方式的在線(xiàn)下載功能。本文以CAN下載方式為例介紹下載原理。為了表達的方便,將用戶(hù)的PC機稱(chēng)為主機,被編程的器件稱(chēng)為從機。
4.2 T89C51CC01CA芯片的程序引導區
T89C51CC01CA芯片內部有2Kbytes的程序引導區,分成3個(gè)部分:ISP通訊管理、函數調用管理、Flash存儲器管理。“ISP通訊管理”部分管理從機引導程序區和編程器間的通訊,對編程器的串行數據流進(jìn)行解釋并轉換為對從機Flash存儲器的訪(fǎng)問(wèn);“函數調用管理”為IAP提供各種函數;“Flash存儲器管理”執行對從機Flash存儲器底層的讀、寫(xiě)操作。
4.3 編程流程
從機中固化的驅動(dòng)程序遵守CAN2.0A標準幀協(xié)議格式,數據幀的11位標識符用來(lái)對目標器件和目標器件的寄存器尋址。因此將標識符的高8位作為基地址,用來(lái)區分不同的器件;將標識符的低3位作為偏移地址,用來(lái)代表不同的命令。編程器首先發(fā)送偏移地址為0的數據幀,進(jìn)行通訊初始;接著(zhù)編程器發(fā)送偏移地址為1的數據幀,選擇編程區域(Flash或EEPROM),并設置編程的起始和結束位置;從機發(fā)回應答消息后,編程器通過(guò)偏移地址為2的數據幀連續發(fā)送編程數據;一個(gè)數據塊發(fā)送完畢后,編程器繼續選擇需要編程的區域,直到完成整個(gè)寫(xiě)數據任務(wù);此后編程器發(fā)送偏移地址為3的數據幀讀取從機Flash或EEPROM中的數據,完成數據校驗的任務(wù)。編程器也可以發(fā)送偏移地址為4或5的數據幀對一些配置字節進(jìn)行修改。下載的流程圖如圖5:



編程器使用FLIP軟件,這個(gè)軟件可以從Atmel公司的網(wǎng)站上免費獲得。
5.CAN調試器功能
本設計的另一個(gè)重要功能是作為調試器使用,對具有CAN功能的節點(diǎn)進(jìn)行通訊調試。主機通過(guò)高速的USB口與調試器通訊,調試器將主機的數據流封裝成具有CAN2.0A或CAN2.0B格式的命令幀,再由CAN控制器發(fā)送到總線(xiàn)上;而接收到的報文經(jīng)過(guò)相反的數據轉換過(guò)程傳回到主機上。
主機的CAN調試界面用VB程序編寫(xiě)的,分通用功能界面(圖6)和面向應用的CAN總線(xiàn)調試界面(圖7)兩個(gè)部分。兩種功能的側重點(diǎn)不同,前一種主要用于節點(diǎn)的初期調試,重點(diǎn)在于實(shí)現節點(diǎn)間的通訊連接和節點(diǎn)狀態(tài)測試;后一種用于實(shí)現具體的任務(wù),重點(diǎn)在于節點(diǎn)間任務(wù)分配和全局時(shí)序響應。兩個(gè)部分在功能上相互補充,滿(mǎn)足不同層次的需要。
5.1 CAN總線(xiàn)調試器的通用功能界面設計
CAN總線(xiàn)調試器的通用功能用來(lái)監測總線(xiàn)的狀態(tài)、測試新的命令和接收不同節點(diǎn)的消息幀。例如當CAN總線(xiàn)上加入新的節點(diǎn)或總線(xiàn)出現故障時(shí),可以用這種方式進(jìn)行調試。如圖7所示,用戶(hù)根據具體的應用要求任意設置CAN的幀結構中的仲裁域、控制域和數據域中的所有位的值,發(fā)送各種命令幀;也可以加入報文過(guò)濾器,有選擇的接收相關(guān)的消息幀。
此種方式的主要功能為:
?改變IDE位的值,選擇發(fā)送標準幀或擴展幀;
?改變仲裁域中基本ID和擴展ID的值,將命令幀發(fā)送到CAN總線(xiàn)上的不同節點(diǎn);
?修改RTR位的值,選擇發(fā)送數據幀或遠程幀;
?改變數據長(cháng)度,發(fā)送不同長(cháng)度的數據幀;
?改變通訊速率,測試通訊的可靠性,尋求速率和距離的最優(yōu)解決方案;
?改變報文過(guò)濾器的值,接收特定ID范圍內的消息幀,并實(shí)時(shí)顯示;
?顯示各種狀態(tài)值,對總線(xiàn)的健康狀態(tài)進(jìn)行評估;
?將接收到的消息幀保存在用戶(hù)指定的文件中,方便對數據的后期的分析處理;
5.2 面向應用的CAN總線(xiàn)調試器界面設計
該方式面向用戶(hù)的實(shí)際工程,根據任務(wù)的要求為CAN的幀結構中的各種域賦予明確的意義,例如ID碼中就可以包含優(yōu)先級、源器件地址和目標器件地址等。這種方式的重點(diǎn)是系統級任務(wù)的實(shí)現,因此將調試器作為總線(xiàn)上的智能節點(diǎn),既能接收其它節點(diǎn)的報文,又能對其它節點(diǎn)發(fā)出命令,從而完全具備實(shí)際節點(diǎn)的所有功能,滿(mǎn)足整個(gè)系統的時(shí)序要求。
如圖8所示,為了使界面具有很好的可讀性,將復雜的CAN消息的數字表達方式文字化,即用戶(hù)對命令或報文過(guò)濾器內容設置完成后,可以為命令或報文過(guò)濾器指定一個(gè)名字。各種報文的發(fā)送和接收都以用戶(hù)定義的文字來(lái)表示,程序自動(dòng)在文字與CAN的幀結構間轉換,從而具有很好的可讀性。這種方式下的特點(diǎn)為:
?系統配置文件的管理。每個(gè)工程的命令幀、報文過(guò)濾器的設置和接收的數據被保存在獨立的配置文件中,通過(guò)“文件”菜單可以打開(kāi)、保存和關(guān)閉工程的配置文件,而且可以在編輯當前工程配置文件的基礎上生成新工程的配置文件,簡(jiǎn)化新工程的開(kāi)發(fā)步驟。
?命令管理。在“發(fā)送命令”區顯示了已經(jīng)定義的命令,這些命令都以用戶(hù)定義的名字表示,可以通過(guò)命令按鈕添加、修改、刪除命令,進(jìn)行命令的后期維護。
?報文過(guò)濾。在“接收設置”區顯示了用戶(hù)可以接收的報文的ID,這些ID范圍之外的報文將被屏蔽。通過(guò)命令按鈕可以添加、修改、刪除ID,并且在設置接收過(guò)濾的時(shí)候,可以指定接到報文后系統自動(dòng)回復的消息內容,增加了軟件的靈活性。
6.結束語(yǔ)
本設計將編程器和CAN總線(xiàn)調試器集成到同一個(gè)器件中,開(kāi)發(fā)了相應的操作軟件,提高了器件的使用范圍和方便性。隨著(zhù)CAN總線(xiàn)的廣泛應用,以及CAN下載方式的推廣,這項技術(shù)也將得到進(jìn)一步推廣。



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>