基于USB接口的編程器的設(shè)計論文說明書_第1頁
基于USB接口的編程器的設(shè)計論文說明書_第2頁
基于USB接口的編程器的設(shè)計論文說明書_第3頁
基于USB接口的編程器的設(shè)計論文說明書_第4頁
基于USB接口的編程器的設(shè)計論文說明書_第5頁
已閱讀5頁,還剩62頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 . . . 編號: 畢業(yè)設(shè)計說明書題 目:基于USB接口的編程器的 設(shè)計 學(xué) 院: 機電工程學(xué)院 專 業(yè): 電氣工程與其自動化 學(xué)生: 忠 富 學(xué) 號:0600120310指導(dǎo)教師: 郭 福 力 職 稱: 工 程 師 題目類型: 理論研究 實驗研究 工程設(shè)計 工程技術(shù)研究 軟件開發(fā)2010年5月20日摘 要USB(通用串行總線)是連接外部設(shè)備和主控制器(通常是個人電腦)的一個串行總線標準。USB是由Ajay Bhatt在因特爾公司工作時開發(fā)的,其開發(fā)USB的目的是為了取代各種各樣的串行和并行端口。USB有一個顯著優(yōu)點就是支持熱插拔,也就是說在開機的情況下,你也可以安全地連接或斷開USB設(shè)備,

2、真正達到真正的即插即用。隨著電子的快速發(fā)展,單片機機得到了廣泛地應(yīng)用,而單片機開發(fā)產(chǎn)品離不開編程器。傳統(tǒng)的編程器都是基于并口開發(fā),在筆記本中根本無法使用,因而開發(fā)基于USB接口的編程器具有非常重要的意義。USB型編程器具有體積小巧、功耗低、可靠性高、通用性強、編程速度快等特點;另一方面,USB具有自身供電的能力,不必外接電源。本課題實現(xiàn)了基于USB接口的AT89S5X單片機編程器制作。文中重點介紹了編程器硬件設(shè)計、DC-DC升壓電路、USB轉(zhuǎn)串口模塊設(shè)計、單片機程序設(shè)計、上位機的軟件設(shè)計。在硬件方面,詳細介紹方案的選擇,元件參數(shù)的計算,以與在制作過程中的注意事項;在軟件方面,詳細闡述了基于VC

3、+上位機編程過程的每個步驟,并提供一個良好的人機對話界面軟件,使用方便。本系統(tǒng)可以實現(xiàn)AT89S51,AT89S52等系列CPU芯片的芯片識別、程序下載、芯片擦處、程序加密、數(shù)據(jù)比較、代碼讀出等功能,同時可以通過計算機控制單片機的運行與停止。關(guān)鍵詞:下載;單片機;編程器;并行;USB轉(zhuǎn)串口AbstractUSB (Universal Serial Bus) is a specification to establish communication between devices and a host controller (usually personal computers), which

4、was developed and invented by Ajay Bhatt when he was working for Intel.The designed of USB is intended to replace many varieties of serial and parallel ports. There is also a significant advantage of its supporting hot-swappable, which meansyou can safely connect or disconnect the USB devicein the c

5、ase of the computer running to achieve a true plug and play. With the rapid development of electronics, microcontroller is widely used.However, using the microcontroller to develop product can not work without the MCU programmer.Traditional programming usually uses parallelcommunicationto the comput

6、er,which is not available to the notebook computer, so there is a special significance to decelop the USB programmer.The USB programmer has many advantages: such as a small size, low power consumption, high reliability, versatility,fast programming characteristics etc;On the other hand, the USB inte

7、rfaceitself can offer power, which means no power is needed.The AT89S5Xmicrocontroller pogrammerproduction based on the USBinterface is designed in this issue. The microcontroller programmer hardware, DC-DC boost circuit, the module of USBtoserial port, the microcontroller programming and PC softwar

8、e designing are described emphatically. In the part of hardwaredesign the choice of the scheme,the calculation of device parameters, the attentions in the production process are detailed. In the part ofsoftware design,the process of PC programming based on VC+ is introduced emphaticallyand good-man-

9、machine conversation interface software is provided, which is easy to use. This system can achieve many functions, such as identification of series CPU chips, program downloading, erase, encrypting, comparing, reading etc, and runningor stoping of the MCU can be controlled by the PC.Keywords: Downlo

10、ad; Microcontroller; Programmer; Parallel; USB-to-serial61 / 67目 錄引言11緒論21.1課題背景與意義21.2系統(tǒng)設(shè)計主要任務(wù)22硬件方案選擇與設(shè)計32.1系統(tǒng)方案選擇32.2系統(tǒng)總體設(shè)計32.3芯片介紹32.3.1 AT89S51簡介32.3.2 DC-DC MC34063芯片簡介52.3.3 USB轉(zhuǎn)串口CP2102芯片簡介52.4硬件電路設(shè)計62.4.1 CP2102電路設(shè)計62.4.2 MC34063芯片升壓電路設(shè)計62.4.3 MCU控制電路設(shè)計73軟件方案選擇與設(shè)計93.1單片機編程93.1.1編程和校驗原理圖103.

11、1.2 FLASH編程器編程與校驗波形(并口模式)103.1.3 Flash編程真值113.1.4 FLASH編程器編程與校驗特性(并口模式)113.1.5讀簽名字123.1.6芯片擦除123.1.7 Flash閃速存儲器編程133.1.8程序存儲器的加密:133.1.9數(shù)據(jù)查詢143.1.10讀取代碼153.1.11單片機運行與停止153.2上位機(PC機)編程163.2.1用戶界面的設(shè)計173.2.2串行通信的實現(xiàn)173.2.3控件MSComm使用方法173.2.4 HEX文件183.2.5軟件的設(shè)計193.2.6軟件操作步驟214系統(tǒng)制作與調(diào)試224.1使用的儀器儀表與工具224.2系統(tǒng)

12、PCB板的設(shè)計224.3硬件調(diào)試224.3.1器件的焊接224.3.2功能模塊調(diào)試224.4單片機程序調(diào)試234.5PC機軟件的調(diào)試234.6聯(lián)機調(diào)試244.7調(diào)試總結(jié)245結(jié)論25辭26參考文獻27附錄28附錄I 下位機調(diào)試程序28附錄II 上位機程序42附錄III 編程器原理圖與PCB58引言通用串行總線(Universal Serial Bus)是連接外部設(shè)備的一個串口總線標準,而其中文簡稱為“通串線,是一個外部總線標準,用于規(guī)電腦與外部設(shè)備的連接和通訊,是應(yīng)用在PC領(lǐng)域的接口技術(shù),同時USB接口支持設(shè)備的即插即用和熱插拔的功能。USB是在1994年底由英特爾、康柏、IBM、Micros

13、oft等多家公司聯(lián)合提出的。USB的功能強大、細小、使用靈活、方便,因而USB具有無比的優(yōu)越性。USB接口將會越來越廣泛的使用,因而研究基于USB的接口設(shè)備具有很重要的意義。單片機體積小、功能強、價格低廉、應(yīng)用十分廣泛。但面對多則幾千元,少則幾百元的編程器,很多人望而卻步。單片機編程器是把一個可編程的集成電路寫上數(shù)據(jù)的工具。編程器的叫法有多種,“編程器”、“下載器”、“燒錄器”等都是其名字,都是同一個產(chǎn)品的不同名稱。編程器在功能上可分通用編程器和專用編程器。專用型編程器價格最低,適用芯片種類較少,適合以某一種或者某一類專用芯片編程的需要,例如僅僅需要對AT89S5X系列編程。全功能通用型一般能

14、夠涵蓋幾乎所有當(dāng)前一樣系列的芯片,由于設(shè)計麻煩、成本較高、限制了銷量、最終售價極高,但適合需要對很多種芯片進行編程的情況。本課題制作基于USB接口的AT89S5X單片機專用編程器的制作。文中重點介紹了編程器硬件設(shè)計、DC-DC升壓電路、USB轉(zhuǎn)串口模塊設(shè)計、單片機程序設(shè)計、上位機的軟件設(shè)計。其中在硬件方面,詳細介紹方案的選擇,電路設(shè)計、元件參數(shù)的計算,以與在制作過程中的注意事項;在軟件方面,詳細闡述了基于VC+上位機編程過程的每個步驟,并提供一個良好的人機對話界面軟件,其使用方便。本系統(tǒng)可以實現(xiàn)AT89S5X等系列CPU芯片的芯片識別、程序下載、芯片擦處、程序加密、程序比較、程序讀出等功能,同

15、時可以通計算機控制單片機的運行與停止。1 緒論隨著USB的快速發(fā)展,USB應(yīng)用越來越廣泛,USB將會取代各種各樣的串行與并行接口,因而研發(fā)USB接口的產(chǎn)品已經(jīng)成為市場發(fā)展的需要。本文將會簡述USB接口的編程器的原理、方案選擇與設(shè)計,主要詳細介紹硬件電路設(shè)計、單片機程序設(shè)計、上位機軟件設(shè)計,同時介紹硬件以與軟件調(diào)試步驟以與注意事項。1.1 課題背景與意義隨著計算機硬件飛速發(fā)展,外圍設(shè)備日益增多,鍵盤、鼠標、調(diào)制解調(diào)器、打印機、掃描儀早已為人所共知,數(shù)碼相機、MP3隨身聽接踵而至,這么多的設(shè)備,如何接入個人計算機?USB就是基于這個目的產(chǎn)生的。USB是一個使計算機周邊設(shè)備連接標準化、單一化的接口,

16、USB的功能強大、細小、使用靈活、方便,因而USB具有無比的優(yōu)越性、實用性。USB接口將會越來越廣泛的使用,因而研究基于USB的接口設(shè)備具有很重要的意義。編程器的下載方式很多,比如AT89S5X單片機就有二種下載方式:高壓并行編程、ISP串行編程。每種方式其使用的編程協(xié)議都是不同,二種編程方式中,現(xiàn)在很多電腦已經(jīng)沒有并口和串口了,特別筆記本電腦中已經(jīng)看不到并口和串口的存在,以前使用的并口和串口的ISP下載線已經(jīng)無法再繼續(xù)使用了。作為如今電腦上使用最多,用途最廣的USB接口,在每一臺電腦上,無論是臺式機還是筆記本電腦都配備了四個以上的USB接口,在這個USB流行的時代,使用USB口連接,支持熱插

17、拔的方便易用、價格低廉的專用型USB編程器非常符合未來編程器的發(fā)展方向。鑒于通用型編程器高昂的制作成本和復(fù)雜的設(shè)計,用途也不大,需求人群不多的特點,我們沒有必要去設(shè)計這樣一個編程器。設(shè)計一個方便易用、簡單可靠、價格低廉的專用型的編程器,能夠?qū)ξ覀兤綍r經(jīng)常用到的單片機芯片進行編程下載,不僅方便我們?nèi)粘?yīng)用,也鍛煉了電路設(shè)計能力和動手能力。以前的編程器都是以并口設(shè)計的為主,每次編程時都要將芯片從目標板上取下,放入編程器里進行編程,使用極其不便,本文設(shè)計了一個應(yīng)用USB接口的編程器,無需將芯片從目標板上取下就開以對其進行編程,方便了程序的下載和調(diào)試。1.2 系統(tǒng)設(shè)計主要任務(wù)本文利用AT89S52做為

18、主控制器,制作USB編程器的樣機。樣機的設(shè)計包括:系統(tǒng)硬件的設(shè)計與調(diào)試與軟件的編寫與調(diào)試。其中硬件部分制作一個制可以下載程序的單片機控制系統(tǒng),里面包含有DC-DC升壓電路、控制單片機下載程序電路、USB轉(zhuǎn)串口的電路。軟件部分可以控制程序下載、芯片擦除、程序加密、數(shù)據(jù)比較、數(shù)據(jù)讀出,同時可以控制單片機復(fù)位,運行,停止等功能。2 硬件方案選擇與設(shè)計USB編程器的制作,方案選擇是關(guān)鍵,硬件設(shè)計是實現(xiàn)整個功能的基礎(chǔ)。本章將會詳細介紹硬件電路方案的選擇與設(shè)計,包括USB轉(zhuǎn)串口電路設(shè)計、DC-DC升壓電路設(shè)計、單片機控制電路設(shè)計。2.1 系統(tǒng)方案選擇USB編程器的制作方案的選擇,是進行樣機設(shè)計最重要、最關(guān)

19、鍵的一步,選擇方案的好壞,直接影響了制作與編程的難度。在硬件方案中,AT89S51/52單片機可以使用ISP或并口模式下載程序。兩種方法各有優(yōu)缺點,在不同的場合,應(yīng)用不同的方案。第一種方案是采用ISP在線編程,程序代碼存儲陣列可通過串行ISP 接口進行編程,串行接口包含SCK線、MOSI(輸入)和MISO(輸出)線。將RST拉高后,在其它操作前必須發(fā)出編程使能指令,編程前需將芯片擦除。芯片擦除則將存儲代碼陣列全寫為FFH。第二種方案是使用并口編程,接線較多,但是控制簡單,AT89S51/52單片機部有4k/8k字節(jié)的可快速編程的Flash 存儲陣列。編程方法可通過傳統(tǒng)的EPROM 編程器使用高

20、電壓(+12V)和協(xié)調(diào)的控制信號進行編程。AT89S51/52的代碼是逐一字節(jié)進行編程。通過比較上述方案,考慮到成本以與可擴展性,同時在不增加成本的情況下,只增加下位機控制程序,即可以擴展下載AT89C51/52等系列的單片機,故選擇第二種方案。2.2 系統(tǒng)總體設(shè)計硬件的總體設(shè)計如圖 2.1所示,將USB轉(zhuǎn)換為串口,單片機與計算機之間的全雙工通信通過單片機的串口與USB轉(zhuǎn)串口模塊相連接,這樣可以使得編程更加簡便,同時使用USB供電,因而不需要外接電源。計算機將數(shù)據(jù)傳輸?shù)街骺匦酒骺匦酒刂剖芸匦酒瑢崿F(xiàn)程序下載、芯片擦除、程序加密、數(shù)據(jù)比較、代碼讀出,同時控制單片機復(fù)位與停止、單片機傳輸數(shù)據(jù)

21、到計算機,計算機顯示相關(guān)信息。同時由于編程中需要用到12V的電壓,因而需要使用DC-DC升壓電路,將USB自身的5V電壓升壓到12V。2.3 芯片介紹2.3.1 AT89S51簡介AT89S51單片機是51系列單片機的一個成員,部自帶4K字節(jié)可編程FLASH可編程可擦除只讀存儲器的低電壓、高性能CMOS8位微處理器,與Intel MCS-51系列單片機的指令和輸出管腳相兼容。由于將多功能八位CPU和閃速存儲器結(jié)合在單個芯片中,因此,AT89S52構(gòu)成的單片機系統(tǒng)是具有結(jié)構(gòu)簡單、造價低廉、效率高的微控制系統(tǒng),減少了硬件開銷,節(jié)省了成本,提高了系統(tǒng)的性價比。AT89S51是一個有40個引腳的芯片,

22、引腳配置如圖 2.2所示。與8031相比,AT89S51自帶4K的ROM和128B的RAM,因此編寫中小型系統(tǒng)就無需任何硬件進行擴展。圖 2.1 系統(tǒng)總體設(shè)計AT89S51芯片的40個引腳功能為:VCC:電源電壓。GND:接地。RST:復(fù)位輸入。當(dāng)RST變?yōu)楦唠娖讲⒈3?個機器周期時,所有I/O引腳復(fù)位至“1”。XTAL1:反向振蕩放大器的輸入與部時鐘工作電路的輸入。XTAL2:來自反向振蕩放大器的輸出。圖 2.2 AT89S51引腳配置2.3.2 DC-DC MC34063芯片簡介該器件本身包含了DCDC變換器所需要的主要功能的單片控制電路且價格便宜。它由具有溫度自動補償功能的基準電壓發(fā)生器

23、、比較器、占空比可控的振蕩器,RS觸發(fā)器和大電流輸出開關(guān)電路等組成。該器件可用于升壓變換器、降壓變換器、反向器的控制核心,由它構(gòu)成的DCDC變換器僅用少量的外部元器件。主要應(yīng)用于以微處理器(MPU)或單片機(MCU)為基礎(chǔ)的系統(tǒng)里。MC34063集成電路主要特性:輸入電壓圍:2、540V。輸出電壓可調(diào)圍:12540V。輸出電流可達:1.5A。工作頻率:最高可達100kHz。低靜態(tài)電流。短路電流限制。可實現(xiàn)升壓或降壓電源變換器。MC34063的基本結(jié)構(gòu)與引腳圖功能:1腳:開關(guān)管T1集電極引出端;2腳:開關(guān)管T1發(fā)射極引出端;3腳:定時電容ct接線端;調(diào)節(jié)ct可使工作頻率在100100kHz圍變化

24、;4腳:電源地;5腳:電壓比較器反相輸入端,同時也是輸出電壓取樣端;使用時應(yīng)外接兩個精度不低于1的精密電阻;6腳:電源端;7腳:負載峰值電流(Ipk)取樣端;6,7腳之間電壓超過300mV時,芯片將啟動部過流保護功能;8腳:驅(qū)動管T2集電極引出端。2.3.3 USB轉(zhuǎn)串口CP2102芯片簡介USB轉(zhuǎn)換口芯片CP2102,UART轉(zhuǎn)USB芯片-CP2102 CP2102是全新的USB轉(zhuǎn)UART的單芯片解決方案。該芯片集成了一個符合USB2.0標準的全速功能控制器、EEPROM、緩沖器、和帶有調(diào)制解調(diào)器接口信號的異步串行數(shù)據(jù)總線(適用于RS-232協(xié)議),同時具有一個集成的部時鐘和USB收發(fā)器,無

25、需其他外部USB電路元件。高性能的CP2102與其他型號的同類芯片相比功耗更低、體積更小、集成度更高(無需外接元件)。CP2102是USB轉(zhuǎn)串應(yīng)用的理想選擇。CP2102是美國Silicon公司生產(chǎn)的高集成度USB轉(zhuǎn)UART專用芯片。它用最簡單的外部電路、最少的外部器件和最小的電路板面積實現(xiàn)USB2.0到UART的轉(zhuǎn)換。CP2102集成度高,置USB2.0全速功能控制器、USB收發(fā)器、晶體振蕩器、EEPROM與異步串行數(shù)據(jù)總線(UART),支持調(diào)制解調(diào)器全功能信號,無需任何外部的USB器件。功能強大,采用MLP-28封裝,尺寸僅為5mm5mm,占用空間非常小。與其他USB-UART轉(zhuǎn)接電路的工

26、作原理類似,CP2102通過驅(qū)動程序?qū)C的USB口虛擬成COM口以達到擴展的目的。虛擬COM口(VCP)的器件驅(qū)動程序允許一個基于CP2102的器件以PC應(yīng)用軟件的形式作為一個增加的COM口獨立于任何現(xiàn)有的硬件。COM口使用運行在PC上的應(yīng)用軟件以訪問一個標準硬件COM口的方式訪問基于CP2101的器件,PC與CP2101間的數(shù)據(jù)傳輸是通過USB完成的,因此,無需修改現(xiàn)有的軟件和硬件就可以通過USB向基于CP2101的器件傳輸數(shù)據(jù)。CP2101的體積雖小但功能非常強大,其主要特性如下:含USB收發(fā)器,無需外接電路器;含時鐘電路,無需外接振蕩器;其部512字節(jié)的EEPROM可用于存儲產(chǎn)品生產(chǎn)商

27、的ID、產(chǎn)品的ID序列號、電源參數(shù)、器件版本號和產(chǎn)品說明;含上電復(fù)位電路;片電壓調(diào)節(jié)可輸出3.3V電壓;符合USB2.0規(guī)的要求(12Mb/s);SUSPEND引腳支持USB狀態(tài)掛起;異步串行數(shù)據(jù)總線(UART)兼容所有握手和調(diào)制解調(diào)器接口信號;支持的數(shù)據(jù)格式為數(shù)據(jù)位8、停止位1、2和校驗位(包括奇校驗、偶校驗和無校驗);波特率圍為300b/s921.6kb/s;含512字節(jié)接收緩沖器和512字節(jié)發(fā)送緩沖器;支持硬件或X-On/X-Off握手;支持事件狀態(tài)。2.4 硬件電路設(shè)計2.4.1 CP2102電路設(shè)計圖 2.3 CP2102電路采用CP2102接口應(yīng)用電路如圖 2.3所示。該電路已通過

28、制板和軟硬件調(diào)試,完全可靠。串口擴展,僅需23只外部去耦電容器,REGIN端需加0.1F與4.7.0F并聯(lián)的去耦電容。CP2102的供電電源由計算機的USB接口。提供該電路僅使用CP2102的UART總線上TXDRXD 2個引腳,其余懸空。單片機可直接識別CP2102的UART總線上信號,為確保數(shù)據(jù)收發(fā)的穩(wěn)定性,將RST采用一只10 k電阻上拉至VDD。當(dāng)CP2102轉(zhuǎn)換器與主機連接后,必須根據(jù)操作系統(tǒng)選擇相對應(yīng)的虛擬串行口驅(qū)動程序。不必修改設(shè)備的應(yīng)用程序,就像存取一個標準的物理串口一樣訪問該虛擬串口,端口設(shè)備會產(chǎn)生“CP2102USB to UART Bridge Controller(CO

29、M)”的新端口(隨計算機的配置而異),此時說明驅(qū)動程序安裝成功。實質(zhì)上,所有針對虛擬串口的數(shù)據(jù)通信都足以USB總線傳輸實現(xiàn)的,但在設(shè)備上,收發(fā)則是RS232數(shù)據(jù)。 2.4.2 MC34063芯片升壓電路設(shè)計MC34063組成的升壓電路原理如圖 2.4Error! Reference source not found.所示,當(dāng)芯片開關(guān)管導(dǎo)通時,電源經(jīng)取樣電阻Rsc、電感L1、MC34063的1腳和2腳接地,此時電感L1開始存儲能量,而由C16對負載提供能量。當(dāng)芯片開關(guān)管導(dǎo)斷開時,電源和電感同時給負載和電容C16提供能量。電感在釋放能量期間,由于其兩端的電動勢極性與電源極性一樣,相當(dāng)于兩個電源串聯(lián)

30、,因而負載上得到的電壓高于電源電壓。開關(guān)管導(dǎo)通與關(guān)斷的頻率稱為芯片的工作頻率。只要此頻率相對負載的時間常數(shù)足夠高,負載上便可獲得連續(xù)的直流電壓。腳5電壓與部基準電壓125V同時送人部比較器進行電壓比較。當(dāng)腳5的電壓值低于部基準電壓(125V)時,比較器輸出為跳變電壓,開啟RS觸發(fā)器的S腳控制門,RS觸發(fā)器在部振蕩器的驅(qū)動下,Q端為“1”狀態(tài)(高電平),驅(qū)動管T2導(dǎo)通,開關(guān)管T1亦導(dǎo)通,使輸入電壓Ui向輸出濾波器電容C16充電以提高U。,達到自動控制U。穩(wěn)定的作用。當(dāng)腳5的電壓值高于部基準電壓(125V)時,RS觸發(fā)器的S腳控制門被封鎖,Q端為“0”狀態(tài)(低電平),T2截止,T1亦截止。振蕩器的

31、Ipk 輸入(腳7)用于監(jiān)視開關(guān)管T1的峰值電流,以控制振蕩器的脈沖輸出到RS觸發(fā)器的Q端。腳3外接振蕩器所需要的定時電容C10電容值的大小決定振蕩器頻率的高低,亦決定開關(guān)管T1的通斷時間。圖 2.4 MC34063芯片升壓電路當(dāng)三極管不導(dǎo)通時候,比較器的反相輸入端(腳5)通過外接分壓電阻R17、R8監(jiān)視輸出電壓 。其中,輸出電壓Uo=1.25(1+ R17/R8),由公式可知輸出電壓僅與R17、R8數(shù)值有關(guān),因5腳是125V為基準電壓,恒定不變。若R17、R8阻值固定,U亦穩(wěn)定。從中我們可以算出,當(dāng)三極管不導(dǎo)通時候,輸出電壓是Uo=1.25(1+20/2.2)=12.61V,同理可算當(dāng)三極管

32、導(dǎo)通時候,Uo=1.25(1+20/12/2.2)=4.96V.2.4.3 MCU控制電路設(shè)計單片機控制電路如圖 2.5Error! Reference source not found.所示,U2的RST引腳,是復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。通過RC電路實現(xiàn)上電復(fù)位,一般上,取R=10K,C=10uf,其原理為當(dāng)單片機接通電源時,VCC給電容充電,使得RST端輸出高電平,當(dāng)電容充滿電后,通過10K電阻放電,電容放電完之后,RST輸出低電平,單片機正常工作。時鐘振蕩器,AT89C52 中有一個用于構(gòu)成部振蕩器的高增益反相放大器,引腳XTAL1 和XTAL

33、2 分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或瓷諧振器一起構(gòu)成自激振蕩器,外接石英晶體(或瓷諧振器)與電容C1、C2 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容C1、C2 雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序與溫度穩(wěn)定性,如果使用石英晶體,我們推薦電容使用30pF10pF,而如使用瓷諧振器建議選擇40pF10F。現(xiàn)在選擇電容為30PF。EA端為高電平(接Vcc端),CPU 則執(zhí)行部程序存儲器中的指令。因而EA端接高電平。單片機輸出高電平時候,由于有負載的作用,高電平一般是3.5V, 當(dāng)TTL電

34、路驅(qū)動COMS電路時,如果TTL電路輸出的高電平低于COMS電路的最低高電平(一般為3.5V),這時就需要在TTL的輸出端接上拉電阻,以提高輸出高電平的值。通過AT89S52控制單片機的下載。根據(jù)單片機下載程序所需設(shè)置引腳的電平,并綜合考慮布線的容易與抗干擾的要求,將控制單片機的P0口接到下載單片機的P0口,控制單片機的P1口接到下載單片機的P1口,控制單片機的P2口接到下載單片機的P2口,控制單片機的P3_2口接到下載單片機的RST口,控制單片機的P3_3口接到下載單片機的ALE口,控制單片機的P3_4口接到下載單片機的P3_3口,控制單片機的P3_5口接到DC-DC芯片電壓的控制口。圖 2

35、.5 MCU控制電路3 軟件方案選擇與設(shè)計硬件設(shè)計是基礎(chǔ),軟件設(shè)計是靈魂。程序設(shè)計正確與否,關(guān)系到整個系統(tǒng)能否正常工作。本章將會詳細介紹下位機的程序設(shè)計、PC機軟件設(shè)計的算法、實現(xiàn)的方法。在單片機程序設(shè)計方面,將會詳細簡述如何實現(xiàn)芯片識別、程序下載、芯片擦處、芯片加密、程序比較、程序讀出的原理以與實現(xiàn)方法。在上位機編程方面,將會詳細簡述制作的每個步驟,提供給用戶一個使用方便,美觀的界面。3.1 單片機編程C語言可讀性好,代碼便于維護,便于開發(fā);匯編語言編寫的程序不容易看懂,可維護性不好,但是執(zhí)行效率高。就目前的情形來說,在硬件條件允許的情況下,程序員選擇用高級語言編程,不但提高了編程效率,也提

36、高了代碼的可維護性,并且十分有利于編寫大型的工程。圖 3.1 單片機編程流程圖基于USB接口的編程器制作的程序流程圖如圖 3.1下所示。單片機上電時,首先等待上位機的數(shù)據(jù),當(dāng)單片機接收到數(shù)據(jù)時,單片機讀取所接收到數(shù)據(jù)的標志位,根據(jù)標志位的數(shù)據(jù),控制單片機實現(xiàn)程序下載、芯片擦處、程序加密、程序比較、程序讀出,單片機運行,單片機復(fù)位、停止等功能。3.1.1 編程和校驗原理圖圖 3.2 編程校驗原理圖3.1.2 FLASH編程器編程與校驗波形(并口模式)圖3.3 FLASH編程器編程與校驗波形3.1.3 Flash編程真值表 3.1 編程器真值表模式VCCRSTPSENALEEAP2.6P2.7P3

37、.3P3.6P3.7P0地址寫代碼5VHL12VLHHHHDINA12-8A7-0讀代碼5VHLHHLLLHHOUTA12-8A7-0寫加密15VHL12VHHHHHXXX寫加密25VHL12VHHHLLXXX寫加密35VHL12VHLHHLXXX讀加密位5VHLHHHHLHHXXX芯片擦除5VHL12VHLHLLXXXATMEL ID5VHLHHLLLLL1EH000000H讀ID5VHLHHLLLLL51H000100H讀ID電壓值5VHLHHLLLLL06H001000H注:(1)芯片擦除每一PROG脈沖為400ms800ms。(2)寫代碼數(shù)據(jù)每一PROG脈沖為200ns500ns。(3

38、)寫加密位每一PROG脈沖為200ns500ns。(4)編程期間P3.0引腳輸出RDYBSY信號。(5)“”不需理會。3.1.4 FLASH編程器編程與校驗特性(并口模式)表 3.2 FLASH編程器編程與校驗特性符號參數(shù)最小值最大值單位VPP編程電壓11.512.5VlPP編程電流1.0mA1/tcLcL時鐘頻率333MHZTAVGL建立地址到PROG變低時間48tcLcLTGHAXPROG變低后地址保持時間48tcLcLTDVGL建立數(shù)據(jù)到PROG變低時間48tcLcLTGHDXPROG變低后數(shù)據(jù)保持時間48tcLcLTEHSHENABLE變高到VPP時間48tcLcLTSHGL加VPP到

39、PROG變低時間10STGHSLPROG后保持VPP時間10STGLGHPROG寬度0.21STAVQV地址到數(shù)據(jù)有效時間48tcLcLTELQVENABLE低到數(shù)據(jù)有效48tcLcLTEHQZENABLE后數(shù)據(jù)浮空048tcLcLTGHBLPROG變高到BUSY變低時間1.0sTWC字節(jié)寫入周期50s3.1.5 讀簽名字AT89S51/52單片機有3 個簽名字節(jié),地址為000H、100H 和200H。用于聲明該器件的廠商和型號等信息,讀簽名字節(jié)的過程和正常校驗相仿,只需將P3.6和P3.7保持低電平,返回值意義如下:(000H)=1EH聲明產(chǎn)品由ATMEL公司制造。(100H)=51H聲明為

40、AT89S51單片機。(100H)=52H聲明為AT89S52單片機。(200H)=06H。通過讀100H地址,即可識別出51/52單片機。其流程圖 3.4(a)如所示。3.1.6 芯片擦除(a)讀簽名字(b)芯片擦除圖 3.4 擦除芯片/讀特征字在并行編程模式,利用控制信號的正確組合并保持ALEPROG引腳200ns500ns的低電平脈沖寬度即可完成擦除操作。在串行編程模式,芯片擦除操作是利用擦除指令進行。在這種方式,擦除周期是自身定時的,大約為500ms。擦除期間,用串行方式讀任何地址數(shù)據(jù),返回值均為00H。其流程圖 3.5(b)如所示。3.1.7 Flash閃速存儲器編程AT89s51/

41、52單片機部有4k/8K字節(jié)的可快速編程的Flash 存儲陣列。編程方法可通過傳統(tǒng)的EPROM 編程器使用高電壓(+12V)和協(xié)調(diào)的控制信號進行編程。AT89S51的代碼是逐一字節(jié)進行編程的。編程方法:編程前,須按編程模式表 3.1 編程器真值表Error! Reference source not found.所示設(shè)置好地址、數(shù)據(jù)與控制信號,AT89S51編程方法如下:(1)在地址線上加上要編程單元的地址信號。(2)在數(shù)據(jù)線上加上要寫入的數(shù)據(jù)字節(jié)。(3)激活相應(yīng)的控制信號。(4)將EAVpp端加上+12V編程電壓。(5)每對Flash存儲陣列寫入一個字節(jié)或每寫入一個程序加密位,加上一個ALE

42、PROG編程脈沖。每個字節(jié)寫入周期是自身定時的,大多數(shù)約為50us。改變編程單元的地址和寫入的數(shù)據(jù),重復(fù)15步驟,直到全部文件編程結(jié)束。其流程圖如圖 3.5(b) 所示。3.1.8 程序存儲器的加密:AT89S51/52可使用對芯片上的3個加密位LB1、LB2、LB3進行編程(P)或不編程(U)來得到如下表所示的功能表 3.3 加密位保護功能表程序加密位LB1LB2 LB3保護類型1UUU沒有程序保護功能2PUU禁止從外部程序存儲器中執(zhí)行MOVC指令讀取部程序存儲器的容,此外復(fù)位時EA被鎖止,禁止再編程3PPU除上表功能,還禁止程序校驗4PPP除以上功能外,同時禁止外部執(zhí)行注:表中的U-表示未

43、編程,P-表示編程當(dāng)加密位LB1 被編程時,在復(fù)位期間,EA端的邏輯電平被采樣并鎖存,如果單片機上電后一直沒有復(fù)位,則鎖存起的初始值是一個隨機數(shù),且這個隨機數(shù)會一直保存到真正復(fù)位為止。為使單片機能正常工作,被鎖存的EA 電平值必須與該引腳當(dāng)前的邏輯電平一致。此外加密位只能通過整片擦除的方法清除。其流程圖如圖 3.5(a)所示。(a) 程序加密 (b) 寫程序圖 3.5寫程序/加密3.1.9 數(shù)據(jù)查詢AT89S51/52單片機用數(shù)據(jù)查詢方式來檢測一個寫周期是否結(jié)束,在一個寫周期中,如需讀取最后寫入的那個字節(jié),則讀出的數(shù)據(jù)的最高位(P0.7)是原來寫入字節(jié)最高位的反碼。寫周期完成后,有效的數(shù)據(jù)就會

44、出現(xiàn)在所有輸出端上,此時,可進入下一個字節(jié)的寫周期,寫周期開始后,可在任意時刻進行數(shù)據(jù)查詢。3.1.10 讀取代碼如果加密位LB1、LB2沒有進行編程,則代碼數(shù)據(jù)可通過地址和數(shù)據(jù)線讀回原編寫的數(shù)據(jù),各加密位也可通過直接回讀進行校驗。首先在單片機對應(yīng)的引腳加上相應(yīng)的控制信號以與地址,通過P0口讀回所下載的數(shù)據(jù)。其實現(xiàn)的流程圖如圖 3.6所示。圖 3.6 讀取代碼3.1.11 單片機運行與停止若要控控制CPU運行,在單片機上電后,在RST引腳加上一個2個機器高電平脈沖,單片機即可復(fù)位,從而使得單片機處于運行的狀態(tài)。其流程圖如圖 3.7(a)所示。若要控制單片機的停止工作,方案有兩種:(1)CPU斷

45、電;(2)在RST引腳加上高電平信號,單片機一直處于復(fù)位狀態(tài),單片機停止工作。通過比較這兩種方案,在實現(xiàn)的難易上,以與對硬件的要求簡單考慮,選擇了第二種方案。其實現(xiàn)的流程圖如圖 3.7(b)所示。 (a) 控制CPU停止 (b)控制CPU運行圖 3.7 控制單片機運行/停止3.2 上位機(PC機)編程VB是一種可視化的、面向?qū)ο蠛筒捎檬录?qū)動方式的結(jié)構(gòu)化高級程序設(shè)計語言,可用于開發(fā)Windows環(huán)境下的各類應(yīng)用程序。它簡單易學(xué)、效率高,且功能強大可以與Windowsr專業(yè)開發(fā)工具SDK相媲美。在Visual Basic環(huán)境下,利用事件驅(qū)動的編程機制、新穎易用的可視化設(shè)計工具,使用Windows

46、部的廣泛應(yīng)用程序接口(API)函數(shù),以用動態(tài)庫(DLL)、對象的與世隔嵌入(OLE)、開放式數(shù)據(jù)連接(ODBC)等技術(shù),可以高效、快速地開發(fā)Windows環(huán)境下功能強大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。隨著版本的提高,Visual Basic的功能也越來越強。5.0版以后,Visual Basic推出了中文版,與前個版本相比,其功能有了很大提升。VC+是微軟公司開發(fā)的一個IDE(集成開發(fā)環(huán)境),換句話說,就是使用C+的一個開發(fā)平臺。VC+是Windows平臺上的C+編程環(huán)境,學(xué)習(xí)VC要了解很多Windows平臺的特性并且還要掌握MFC、ATL、COM等的知識,難度比較大。Windows下編程需要了

47、解Windows的消息機制以與回調(diào)(callback)函數(shù)的原理;MFC是Win32API的包裝類,需要理解文檔視圖類的結(jié)構(gòu),窗口類的結(jié)構(gòu),消息流向等等;COM是代碼共享的二進制標準,需要掌握其基本原理等等。 VC作為一個主流的開發(fā)平臺一直深受編程愛好者的喜愛,但是很多人卻對它的入門感到難于上青天,究其原因主要是大家對他錯誤的認識造成的,嚴格的來說VC+不是門語言,雖然它和C+之間有密切的關(guān)系,如果形象點比喻的話,可以C+看作為一種”工業(yè)標準”,而VC+則是某種操作系統(tǒng)平臺下的”廠商標準”,而”廠商標準”是在遵循”工業(yè)標準”的前提下擴展而來的。上位機編程,綜合所學(xué)的知識,可以使用VC或者VB編

48、程,由于Visual C+是開發(fā)Win32應(yīng)用程序的可視化編程工具,它為軟件開發(fā)人員提供完整的編輯,編譯,調(diào)試工具,以與建立基于Win32 API 基礎(chǔ)的MFC類庫,從而有效的縮短了Windows應(yīng)用程序的開發(fā)周期,Windows操作系統(tǒng)本身大部分是用C/C+語言寫成的,而Visual C+正是使用C/C+語言的Win32應(yīng)用程序集成開發(fā)環(huán)境,因此,應(yīng)該Visual C+編寫軟件,具有得天獨厚的優(yōu)勢。 本系統(tǒng)給用戶提供一個良好的人機對話界面PC機軟件,提供給用戶簡單、實用、方便操作的軟件,使用微軟提供的MFC編程,可以很方便的設(shè)計軟件的界面,以與程序代碼的編寫。使用串口的傳輸波特率為9600k

49、bps。3.2.1 用戶界面的設(shè)計用戶界面是一個應(yīng)用程序最重要的部分,對用戶而言,界面就是應(yīng)用程序,用戶感覺不到幕后正在執(zhí)行的代碼。不論花多少時間和精力來編制和優(yōu)化代碼,應(yīng)用程序的可用性仍然在很大程度上依賴于界面的好壞。上位機的軟件界面如圖 3.8所示。3.2.2 串行通信的實現(xiàn)利用VC開發(fā)通信程序主要有兩種方法,一是利用VC本身提供的控件,另一種是利用Windows API應(yīng)用程序接口,Windows API主要提供了三個動態(tài)庫KERNEL.EXE、USER.EXE、GDI.EXE供開發(fā)人員調(diào)用,利用VC自身提供的控件MSComm,用較少的代碼可以實現(xiàn)一樣的功能,因此本設(shè)計使用此控件來完成串

50、口的通信。3.2.3 控件MSComm使用方法MSComm 控件通過串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通訊功能。MSComm控件在串口編程時非常方便,程序員不必去花時間去了解較為復(fù)雜的API函數(shù),而且在VC、VB、Delphi等語言中均可使用。Microsoft Communications Control(以下簡稱MSComm)是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法。具體的來說,它提供了兩種處理通信問題的方法:一是事件驅(qū)動(Eventdriven)方法,一是查詢法。圖 3.8 上位機的軟件界

51、面MSComm控件提供下列兩種處理通訊的方式:事件驅(qū)動方式和查詢方式。事件驅(qū)動方式:事件驅(qū)動通訊是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時需要得到通知,例如,在串口接收緩沖區(qū)中有字符,或者 Carrier Detect(CD)或 Request To Send (RTS)線上一個字符到達或一個變化發(fā)生時。在這些情況下,可以利用 MSComm控件的 OnComm事件捕獲并處理這些通訊事件。OnComm事件還可以檢查和處理通訊錯誤。所有通訊事件和通訊錯誤的列表,參閱 CommEvent屬性。在編程過程中,就可以在OnComm事件處理函數(shù)中加入自己的處理代碼。這種方法的優(yōu)

52、點是程序響應(yīng)與時,可靠性高。每個MSComm 控件對應(yīng)著一個串行端口。如果應(yīng)用程序需要訪問多個串行端口,必須使用多個 MSComm 控件。查詢方式:查詢方式實質(zhì)上還是事件驅(qū)動,但在有些情況下,這種方式顯得更為便捷。在程序的每個關(guān)鍵功能之后,可以通過檢查CommEvent屬性的值來查詢事件和錯誤。3.2.4 HEX文件Intel HEX文件是由一行行符合Intel HEX文件格式的文本所構(gòu)成的ASCII文本文件。在Intel HEX文件中,每一行包含一個HEX記錄。這些記錄由對應(yīng)機器語言碼和/或常量數(shù)據(jù)的十六進制編碼數(shù)字組成。Intel HEX文件通常用于傳輸將被存于ROM或者EPROM中的程序

53、和數(shù)據(jù)。大多數(shù)EPROM編程器或模擬器使用Intel HEX文件。HEX文件和BIN文件大小有區(qū)別 ,HEX文件是用ASCII來表示二進制的數(shù)值。例如一般8-BIT的二進制數(shù)值0x3F,用ASCII來表示就需要分別表示字符3 和字符F,每個字符需要一個BYTE,所以HEX文件需要 2倍的空間。 對一個BIN文件而言,你查看文件的大小就可以知道文件包括的數(shù)據(jù)的實際大小。而對HEX文件而言,你看到的文件 大小并不是實際的數(shù)據(jù)的大小。一是因為HEX文件是用ASCII來表示數(shù)據(jù),二是因為HEX文件本身還包括別的附加信息。軟件根據(jù)上述的方法,打開文件時,將數(shù)據(jù)記錄中的數(shù)據(jù)域提取出來,以便將數(shù)據(jù)域下載到單

54、片機。3.2.5 軟件的設(shè)計(1)建立項目:打開VC+6.0,建立一個基于對話框的MFC應(yīng)用程序,文件名:基于USB的89S5X系列單片機下載軟件;(2)在項目中插入MSComm控件 選擇Project菜單下Add To Project子菜單中的 Components and Controls選項,在彈出的對話框中雙擊Registered ActiveX Controls項(稍等一會,這個過程較慢),則所有注冊過的ActiveX控件出現(xiàn)在列表框中。 選擇Microsoft Communications Control, version 6.0,單擊Insert按鈕將它插入到我們的Project中來,接受缺省的選項。(如果你在控件列表中看不到Microsoft Communications Control, version 6.0,那可能是你在安裝VC6時沒有把ActiveX一項選上,重新安裝VC6,選上ActiveX就可以了),這時在ClassView視窗中就可以看到CMSComm類了,并且在控件工具欄Controls中出現(xiàn)了圖標(如圖1所示),現(xiàn)在要做的是用鼠標將此圖標拖到對話框中,程序運行后,這個圖標是看不到的。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論