引 言:
通用串行總線(USB)是一種支持即插即用的新型串行接口,使外設到計算機的連接更加高效便利。這種接口適合于多種設備,不僅具有快速、即插即用、支持熱插拔的特點,還能同時連接多達127個設備,解決了如資源沖突、中斷請求和直接數(shù)據通道等問題。因此,越來越多的開發(fā)者欲在自己的產品中使用這種標準接口。RS232是單個設備接入計算機時常采用的一種接入方式,其硬件和軟件協(xié)議比較簡單,有很多傳統(tǒng)設備采用了這種通信方式。將USB轉UART技術應用于單片機與PC機之間的數(shù)據通信,在計算機上產生一個虛擬的COM口,用戶只需按照通用串行口一樣使用USB口即可。這樣不僅能使單片機具備USB通信的諸多優(yōu)點,簡化了USB編程,同時還可以利用USB對單片機提供5V的電源(500mA以下)。筆者根據芯片CP2101的USB轉UART技術特點設計了實驗電路板,達到了既提供實驗電路板電源,又實現(xiàn)計算機與實驗電路板通信的目的,并結合單片機IAP技術,可完成單片機的在線編程。
1 CP2101芯片的功能及工作電路圖
芯片CP2101是一種高度集成的USB轉UART橋接器,它包含有USB2.0全速功能控制器、USB收發(fā)器振蕩器和異步串行接口(UART)。該芯片的全部功能集成在一個5mm×5mm的MLP28封裝的IC中。CP2101內置有與計算機通信的USB協(xié)議,工作時,會在計算機上產生一個虛擬COM 口,用戶就可以按照通用串行口的控制方式來使用這個COM口。
CP2101內集成有多個模塊,各自完成不同的功能,如圖1所示。
① USB功能控制器是一個符合USB 2.0的全速器件,集成了收發(fā)器和片內相應的上拉電阻,USB功能控制器管理 USB和 UART間所有的數(shù)據傳輸和由 USB主控制器發(fā)出的命令請求以及用于控制 UART功能的命令,USB接口的信號描述如表1所列。
② 異步串行接口(UART)包括TX (發(fā)送) 、RX (接收) 、數(shù)據信號以及RTS、 CTS、 DSR、 DTR、 DCD和 RI控制信號。UART支持 RTS/CTS、 DSR/DTR和 XOn/XOff握手協(xié)議,可以通過編程使UART支持各種數(shù)據格式和波特率,波特率的范圍從300~921600不等。從CP2101轉換出來的 UART信號不是標準的RS232電平,而是TTL電平,其信號描述如表2所列。
③ 內部 EEPROM可以用于存儲由設備原始制造商定義的USB供應商ID、產品ID、產品說明、電源參數(shù)器件、版本號和器件序列號等信息。
④ 電壓調節(jié)器是一個可以由USB總線驅動的器件電源,可在VDD引腳輸出3.0~3.6 V電壓,1~100 mA電流。
2 基于USB轉UART技術的IAP編程電路設計
2.1CP2101的外圍接口電路
CP2101是USB轉串行口橋接器,它需要設計外接USB接口電路和RS232接口電路。USB接口電路實現(xiàn)CP2101與計算機之間的通信;RS232接口電路實現(xiàn)CP2101和外設之間的通信。接口電路如圖2所示。其中RS232電平轉換電路可根據需要選用MAX3243或 MAX232。
圖2CP2101的外圍接口電路
對用戶來說,CP2101就是一個USB轉RS232的芯片,只不過RS232的輸入和輸出信號均為TTL電平,而不是標準的RS232電平。它的使用與普通的USB外設相同,當?shù)谝淮螏щ姴迦隤C機USB接口時,系統(tǒng)會提示安裝相應的驅動程序,驅動程序可從網站www.xhl.com.cn上下載。驅動程序安裝完后,系統(tǒng)會自動增加一個COM口,用戶就可以按照傳統(tǒng)的串行口控制方式來使用這個帶有5 V和3.3 V供電的“COM口”。
2.2根據CP2101設計IAP工作電路
根據IAP編程的工作原理,如果單片機在2 s內沒有接收到任何IAP命令,在看門狗定時器的作用下將自動進入用戶程序。用戶還可以通過編程控制串行口上的RTS引腳產生復位信號來控制單片機。也可以在復位后(2 s內)直接以約定的波特率傳送HEX代碼文件,自動完成程序的擦除和寫入,大大簡化了IAP編程過程。
根據IAP編程的原理,作者先后設計了兩種接口電路。一種是傳統(tǒng)電路IAP工作電路,沒有使用CP2101芯片,如圖3所示。另一種是利用CP2101設計的IAP工作電路,如圖4所示。
在傳統(tǒng)電路IAP工作電路中,利用USB接口提供TTL電源,串行口提供IAP編程、數(shù)據傳輸及復位控制信號。圖3中,R1、R2、C1和K1構成傳統(tǒng)的上電自動和手動復位電路,R7、D1構成一個由串行口RTS端控制的復位電路;串行口信號需要由RS232電平轉換為TTL電平,需要設計電平轉換電路或采用專用的電平轉換芯片。該電路工作時需要有兩個接口,USB接口和COM接口,USB接口的功能是提供TTL電平的電源,串行接口的功能是串行口通信、IAP編程及復位信號控制。
在利用CP2101設計的IAP工作電路中,USB接口除了提供TTL電源外、還有串行口通信、 IAP編程及復位信號控制。圖4中,R5、R6、C2和K2構成傳統(tǒng)的上電自動和手動復位電路,R3、R4、D2和T1構成一個由串行口RTS端控制的復位電路,由于CP2101轉換后的信號是TTL電平,可以直接為單片機使用,節(jié)省了RS232電平轉換為TTL電平的輔助電路。
利用 CP2101設計的IAP工作電路有很大的優(yōu)越性,它只需使用USB接口就可以完成提供TTL電源、串行口通信、IAP編程及復位信號控制,減少了計算機與外設之間的接口,同時也為在沒有COM口的計算機上進行IAP編程提供了可能,增強了外設的靈活性。在電路板設計中,采用CP2101芯片,既可以節(jié)省 RS232電平轉換為TTL電平的電路,又使用5 mm×5 mm的MLP28封裝,減少了電路板面積,節(jié)省了成本。
在進行IAP編程的模式下,使用CP2101芯片在計算機上用USB接口虛擬出串行口,這樣既可以克服由于USB接口協(xié)議的復雜性給用戶帶來的不便,又可以簡化計算機與單片機之間的接口,同時可以給用戶設備提供一個5V電源,減少了由于外接電源帶來的不便。筆者使用C51對單片機IAP模塊進行了二次開發(fā),進一步簡化了 IAP下載的過程,開發(fā)后的IAP程序先寫入單片機,用戶就可以在應用板上直接下載用戶程序,不需任何編程器就可以完成單片機系統(tǒng)的開發(fā)及單片機實驗教學。同時使用USB轉UART和IAP技術為51系列單片機的開發(fā)與學習提供一種新的便捷而廉價的方法。對初次學習單片機的人們和大中專院校的學生學習單片機帶來極大的方便。
結語
利用USB轉UART技術,簡化了外設接口,也為外設提供了5V電源。該技術被廣泛應用于手機、數(shù)碼相機、PDA以及MP3等功耗比較低的設備,既可以省去外接電源,又可以做數(shù)據傳輸和信號控制,同時還可以對外設進行系統(tǒng)升級,具有可觀的經濟效益和市場前景。
參考文獻
1靳桅.單片機原理及應用—C51編程技術. 成都:西南交通大學出版社,2004
2靳桅. SST89C5x系列單片機IAP開發(fā)及應用. 見:2003年全國單片機及嵌入式系統(tǒng)年會. 北京:北京航空航天大學,2003
3Silicon Storage Technology Design Considerations for the SST FlashFlex51 Family Microcontroller
4Silicon Storage Technology Memory Re?Mapping of the SST89C54/58 Microcontroller
5Silicon Storage Technology SST FlashFlex51 Microcontroller In?Application Programming Basics
6何立民. MCS51系列單片機應用系統(tǒng)設計. 北京:北京航空航天大學出版社,1990