国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于USB接口的51單片機在線編程設計

2012-08-16 01:15:00陳志英
電氣電子教學學報 2012年5期
關鍵詞:PC機串口時鐘

陳志英

(廈門理工學院電子與電氣工程系,福建廈門 361024)

0 引言

51單片機的Flash存儲器程序燒寫主要有兩種模式:并行Flash編程和串行Flash編程。其中串Flash編程模式支持ISP編程(系統(tǒng)在線編程),這種模式在燒寫單片機應用程序時不需要把芯片從工作環(huán)境中剝離,解決了在開發(fā)產(chǎn)品時因頻繁插拔芯片導致其引腳折斷從而損壞芯片的問題,同時也給系統(tǒng)軟件升級提供了便利。目前,市面上大部分51單片機ISP編程主要采用PC機并口或RS232串口進行程序下載,而基于USB接口的ISP編程較少,這對于只有USB接口的PC機來說非常不方便?;谶@個原因,本文給出了一種基于USB接口的51單片機在線編程設計方案,主要針對ATMEL公司生產(chǎn)的51單片機AT89S51/52/53芯片進行系統(tǒng)在線編程,無需外接電源,采用從PC機USB接口取電,方便用戶使用,寫入速度快及穩(wěn)定性好[1,2]。該設計包括USB-SPI硬件接口轉(zhuǎn)換電路和PC端上位機編程軟件兩部份。系統(tǒng)原理框圖如圖1所示。

USB-SPI接口轉(zhuǎn)換電路采用南京沁恒公司USB轉(zhuǎn)換芯片CH341實現(xiàn)。PC端上位機編程軟件采用VB編寫,利用API函數(shù)調(diào)用CH341運行的動態(tài)鏈接庫文件實現(xiàn)PC機與CH341之間的USB接口數(shù)據(jù)傳送,CH341再將從USB接口接收到的數(shù)據(jù)通過SPI同步串行接口傳送到目標單片機AT89S51。由此,可完成單片機Flash在線編程。

1 USB-SPI接口轉(zhuǎn)換電路

轉(zhuǎn)換芯片CH341A是一個全速USB設備接口,可轉(zhuǎn)換成并行口、異步串行口、或2線、4線同步串行接口。它的部分引腳具有多個功能,具體功能由復位后的功能配置決定[3]。本設計將CH341配置成4線同步串行接口,電路原理如圖2所示。該電路不僅可實現(xiàn)將USB接口轉(zhuǎn)換成SPI同步串行接口,且具有USB通信標志信號、向外電路供電和過電流保護等功能。

圖2 CH341 USB轉(zhuǎn)SPI接口電路

CH341芯片部分引腳具有多個功能,所以在芯片復位期間與復位完成后正常工作狀態(tài)下具有不同的特性。用戶可通過CH341芯片SCL和SDA引腳配置芯片功能,有兩種方式:外部芯片配置和直接組合配置。外部芯片配置是由SCL引腳和SDA引腳組成兩線同步串口,連接外部串行EEPROM配置芯片,通過EEPROM芯片定義芯片功能、廠商ID和產(chǎn)品ID等。直接組合配置是將SCL引腳和SDA引腳進行連接組合,配置CH341的功能,其特點是:無需增加額外成本,但是只能使用默認的廠商ID和產(chǎn)品ID等信息。CH341功能配置如表1所示。在直接組合配置方式下,除了產(chǎn)品ID之外,其它信息與外部芯片配置的默認值相同。本設計中CH341的功能是將USB接口轉(zhuǎn)換成SPI接口,因此將SDA引腳接低電平,SCL懸空,使CH341芯片配置成4線同步串口。4線串口引腳為:DIN(22腳)是4線串口數(shù)據(jù)輸入,接單片機MISO(P1.6);DOUT(20腳)是4線串口數(shù)據(jù)輸出,接單片機MOSI(P1.5);SCK(18腳)是4線串口時鐘輸出,時鐘頻率約為1.6MHz,接單片機SCK(P1.7);CS2~CS0是4線串口片選輸出,低電平片選有效,本設計選擇CS1(16腳)為片選引腳,接單片機RST(Pin9)。其中SCK引腳默認為低電平,DOUT引腳在時鐘上升沿將數(shù)據(jù)從CH341輸出到51單片機,DIN引腳在時鐘下降沿將數(shù)據(jù)從51單片機輸入到CH341。

表1 SDA和SCL的功能配置表

CH341芯片ACT#引腳為輸出引腳,用于USB設備配置完成狀態(tài)輸出。當USB設備尚未配置或者取消配置后,該引腳輸出高電平,當USB設備配置完成后,該引腳輸出低電平。因此在ACT#引腳外串聯(lián)了發(fā)光二級管LED1,用于指示USB設備配置完成狀態(tài)。當CH341設備配置成功后,發(fā)光二極管LED1亮,否則發(fā)光二極管LED1滅。

CH341芯片UD+和UD-是USB信號引腳,芯片內(nèi)置了USB上拉電阻,將UD+和UD-引腳直接連接到USB總線上。PC機發(fā)送的數(shù)據(jù)通過UD+和UD-引腳傳送到CH341中。

圖2中的R1是保護電阻從USB接口取出的電路總電流不得超過250mA,否則電阻R1將燒壞,電路斷開[4]。因此當發(fā)生電路短路或所接外電路總電流過大時可保護CH341芯片及外電路中一些較昂貴的芯片。

CH341芯片XI和XO引腳之間接12MHz晶振和2個20pF電容可為CH341提供正常工作所需的時鐘信號。

2 51單片機在線編程原理

51單片機Flash閃速存儲器可通過SPI同步串行接口進行在線編程,SPI串行接口包含時鐘引腳SCK(Pin1.7)、串行數(shù)據(jù)輸入引腳 MOSI(P1.5)和串行數(shù)據(jù)輸出引腳MISO(P1.6)。將單片機復位引腳RST(Pin9)拉高后,在其它操作前必須發(fā)出編程使能指令,并在編程前擦除芯片。編程時單片機的電源電路與時鐘電路需正常工作,且編程串行時鐘SCK不得超過單片機片外晶振時鐘的1/16。具體的串行編程采用如下進程[5]。

(1)上電次序:將電源加在Vcc和GND引腳,RST置為“H”,等候10ms;

(2)將編程使能指令發(fā)送到MOSI(Pin1.5),編程時鐘接至SCK(Pin1.7),此頻率需小于晶體時鐘頻率的1/16;

(3)代碼陣列的編程可選字節(jié)模式或頁模式。寫周期是自身定時的,一般不大于0.5ms(5V電壓時);

(4)任意代碼單元均可通過MISO(Pin1.6)和讀指令選擇相應的地址回讀數(shù)據(jù)進行校驗;

(5)編程結(jié)束應將RST置為“L”以結(jié)束操作;

(6)斷電次序:假如沒有使用晶體,將XATL置為低,RST置為低,關斷電源Vcc。

串行編程指令設置為一個4字節(jié)協(xié)議,具體格式請參見文獻[3],對AT89S51/52單片機串行編程共有9條命令,分別用來實現(xiàn)編程允許、芯片擦除、讀/寫數(shù)據(jù)(字節(jié)或頁模式兩種)、讀加密位以及讀簽名字節(jié)內(nèi)容等功能。CH341通過 DIN、DOUT、SCK模擬SPI接口信號,完成對AT89S51/52單片機串行編程和校驗。AT89S51/52編程和校驗時序如圖3所示。對AT89S51/52編程或校驗時,字節(jié)數(shù)據(jù)總是高位在前,低位在后。寫數(shù)據(jù)(編程)時,在SCK為低電平期間,將數(shù)據(jù)送到MOSI(P1.5),而讀數(shù)據(jù)(校驗)是在SCK為高電平時將數(shù)據(jù)輸出到MISO(P1.6)。

圖3 AT89S51單片機串行編程與校驗時序圖

3 PC端上位機軟件

PC端上位機軟件設計采用VB(Visual Basic)語言編寫,實現(xiàn)對AT89S51/52芯片程序擦除、下載和回讀等功能。

上位機軟件主要包括以下內(nèi)容:打開文件、全片擦除、下載代碼、讀入代碼、自動完成、讀單ID和文件更新后自動下載等。

VB可以調(diào)用 CH341動態(tài)鏈接庫中的函數(shù)CH341OpenDevice()打開CH341設備,若打開成功則可對CH341設備進行如下的一系列操作:調(diào)用CH341SetStream()設置CH341同步串口流模式,使CH341數(shù)據(jù)流模式為SPI數(shù)據(jù)流,并且為高位在前的傳輸模式,與AT89S51/52的ISP編程規(guī)則一致;調(diào)用CH341StreamSPI4()函數(shù)處理SPI數(shù)據(jù)流,燒寫AT89S51/52時通過編程指令將PC機中的代碼從USB接口發(fā)送到CH341,CH341再通過MOSI引腳發(fā)送到AT89S51/52,讀取代碼時通過讀指令將AT89S51/52閃存中的代碼從MISO引腳回送到CH341,CH341再通過USB接口將代碼傳回PC機;調(diào)用CH341CloseDevice()關閉CH341設備,此后不能操作CH341。因此要操作CH341設備,必須先調(diào)用CH341OpenDevice函數(shù)打開CH341設備;調(diào)用CH341SetDeviceNotify()檢測CH341設備是否與PC機相連。

圖4是AT89S51/52代碼下載的程序流程圖。

圖4 下載代碼流程圖

[1] 梁睿,等.ISP技術在AT89SX單片機中的應用[D].徐州:中國礦業(yè)大學電學院,2004

[2] 楊恒新,等.ISP技術在單片機程序升級中的應用[D].南京:南京郵電大學光電工程學院,2006

[3] 南京沁恒電子有限公司.CH341[Z],2008

[4] 廖濟林.USB2.0應用系統(tǒng)開發(fā)實例精講[M].北京:電子工業(yè)出版社,2006

[5] 歐陽文.ATMEL89系列單片機的原理與開發(fā)實踐[M].北京:中國電力出版社,2007

[6] Atmel Corporation.AT89S51[Z],2001

猜你喜歡
PC機串口時鐘
別樣的“時鐘”
淺談AB PLC串口跟RFID傳感器的通訊應用
古代的時鐘
基于PC機與單片機的多機通信技術及抗干擾方法
基于三菱FXPLC的感應淬火機床與PC機的串行通信實現(xiàn)
有趣的時鐘
VC.NET下實現(xiàn)dsPIC單片機與PC機的通信
電子制作(2017年23期)2017-02-02 07:16:47
時鐘會開“花”
USB接口的多串口數(shù)據(jù)并行接收方法探索
基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
地礦測繪(2015年3期)2015-12-22 06:27:26
大新县| 光泽县| 彝良县| 普宁市| 余姚市| 中西区| 东方市| 建德市| 红河县| 周宁县| 望谟县| 航空| 永清县| 营口市| 昆山市| 小金县| 五家渠市| 灵石县| 安平县| 三河市| 灌南县| 扬中市| 林西县| 莎车县| 翁源县| 正阳县| 沧州市| 江津市| 陕西省| 通河县| 澄迈县| 方正县| 罗平县| 富裕县| 漯河市| 青神县| 灵石县| 栖霞市| 东丰县| 东乌珠穆沁旗| 太仓市|