用CP2101將USB口擴(kuò)展成串口
摘要:CP2101及其升級(jí)產(chǎn)品CP2102最美國(guó)Silicon公司生產(chǎn)的高集成度USB-UART橋接電路。它們能夠用最簡(jiǎn)單的外部電路、最少的外部器件及最小的電路板面積簡(jiǎn)便實(shí)現(xiàn)USB2.0到UART的轉(zhuǎn)換。文中介紹該電路的主要特性和實(shí)際應(yīng)用方法。
引言
CP2101及其升級(jí)產(chǎn)品CP2102是美國(guó)Silicon公司推出的USB-UART橋接電路。該電路的集成度高,內(nèi)置USB2.0全速功能控制器、USB收發(fā)器、晶體振蕩器、EEPROM及異步串行數(shù)據(jù)總線(UART),支持調(diào)制解調(diào)器全功能信號(hào),無(wú)需任何外部的USB器件。功能強(qiáng)大,采用MLP-28封裝,尺寸僅為5mm5mm,占用空間非常小。
與其他USB-UART轉(zhuǎn)接電路的工作原理類似,CP2101通過(guò)驅(qū)動(dòng)程序?qū)C的USB口虛擬成COM口以達(dá)到擴(kuò)展的目的。虛擬COM口(VCP)的器件驅(qū)動(dòng)程序允許一個(gè)基于CP2101的器件以PC應(yīng)用軟件的形式作為一個(gè)增加的COM口獨(dú)立于任何現(xiàn)有的硬件。COM口使用運(yùn)行在PC上的應(yīng)用軟件以訪問一個(gè)標(biāo)準(zhǔn)硬件COM口的方式訪問基于CP2101的器件,PC與CP2101間的數(shù)據(jù)傳輸是通過(guò)USB完成的,因此,無(wú)需修改現(xiàn)有的軟件和硬件就可以通過(guò)USB向基于CP2101的器件傳輸數(shù)據(jù)。
1 CP2101的特性
CP2101的體積雖小但功能非常強(qiáng)大,其主要特性如下:
內(nèi)含USB收發(fā)器,無(wú)需外接電路器;
內(nèi)含時(shí)鐘電路,無(wú)需外接振蕩器;
其內(nèi)部512字節(jié)的EEPROM可用于存儲(chǔ)產(chǎn)品生產(chǎn)商的ID、產(chǎn)品的ID序列號(hào)、電源參數(shù)、器件版本號(hào)和產(chǎn)品說(shuō)明;
內(nèi)含上電復(fù)位電路;
片內(nèi)電壓調(diào)節(jié)可輸出3.3V電壓;
符合USB2.0規(guī)范的要求(12Mb/s);
SUSPEND引腳支持USB狀態(tài)掛起;
異步串行數(shù)據(jù)總線(UART)兼容所有握手和調(diào)制解調(diào)器接口信號(hào);
支持的數(shù)據(jù)格式為數(shù)據(jù)位8、停止位1、2和校驗(yàn)位(包括奇校驗(yàn)、偶校驗(yàn)和無(wú)校驗(yàn));
波特率范圍為300b/s~921.6kb/s;
內(nèi)含512字節(jié)接收緩沖器和512字節(jié)發(fā)送緩沖器;
支持硬件或X-On/X-Off握手;
支持事件狀態(tài)。
圖1
此外,通過(guò)廠商及銷售商免費(fèi)提供的、適用于Windows(含Windows CE)、Linux、Mac OS-X等多個(gè)操作系統(tǒng)的驅(qū)動(dòng)程序,可省去CP2101系列器件二次開發(fā)的投入。這樣,在一般情況下,焊接完畢并安裝好驅(qū)動(dòng)程序即可使用。
2 工作原理
CP2101的內(nèi)部結(jié)構(gòu)及外部基本連接電路如圖1所示。由圖1可見,用CP2101進(jìn)行串口擴(kuò)展所需的外部器件非常少,僅需3只去耦電容器即可,使用起來(lái)非常方便。
2.1 USB功能控制器和收發(fā)器
CP2101中的USB功能控制器是一個(gè)符合USB2.0的全速電路,帶有收發(fā)器和相應(yīng)的片內(nèi)上拉電阻器。USB功能控制器管理USB與UART間的所有數(shù)據(jù)傳輸,以及由USB主控制器發(fā)出的請(qǐng)求命令和用于控制UART功能的命令。通過(guò)USB掛起和恢復(fù)信號(hào)可支持CP2101及外部電路的電源管理。當(dāng)在總線上檢測(cè)到掛起信號(hào)時(shí),CP2101將進(jìn)入掛起模式。在進(jìn)入掛起模式時(shí),CP2101會(huì)發(fā)出SUSPEND和SUSPEND信號(hào),同時(shí),在CP2101復(fù)位后,CP2101也會(huì)發(fā)出該信號(hào)直到USB要求的器件配置完成。CP2101的掛起模式會(huì)在下述任何一種情況出現(xiàn)時(shí)被取消:
(1)檢測(cè)到繼續(xù)信號(hào)或產(chǎn)生繼續(xù)信號(hào)時(shí);
(2)檢測(cè)到一個(gè)USB復(fù)位信號(hào);
(3)器件復(fù)位。
在退出掛起模式時(shí)SUSPEND和SUSPEND信號(hào)被取消。
需要注意的是SUSPEND和SUSPEND和CP2101復(fù)位期間會(huì)暫時(shí)處于高電平,如果要避免這種情況,可以使用一個(gè)大的下拉電阻器(10kΩ)來(lái)確保SUSPEND在復(fù)位期間處于低電平。
2.3 異步串行數(shù)據(jù)總線(UART)接口
CP2101的UART接口包括TX發(fā)送、RX接收數(shù)據(jù)信號(hào),以及RTS、CTS、DSR、DTR、DCD和RI控制信號(hào)。UART支持RTS/CTS、DSR/DTR和X-On/X-Off握手,還可以通過(guò)編程使UART支持各種數(shù)據(jù)格式和波特率。UART的數(shù)據(jù)格式和波特率編程可在PC上進(jìn)行。表1所列是CP2101串行總線的數(shù)據(jù)格式和波特率。
表1 CP2101串行總線的數(shù)據(jù)格式和波特率
數(shù)據(jù)位 | 8 |
停止位 | 1 |
校驗(yàn)位 | 無(wú)校驗(yàn)、奇校驗(yàn)、偶校驗(yàn) |
波特率 | 300,600,1200,1800,2400,4800,7200,9600,14400,19200,28800,38400,56000,57600,115200,128000,230400,460800,921600 |
這里還需注意的是,CP2101異步串行數(shù)據(jù)總線的數(shù)據(jù)位和停止位是固定的,也就是說(shuō),在實(shí)際使用中可以通過(guò)軟件改變校驗(yàn)位和波特率,但是,改變數(shù)據(jù)位和停止位會(huì)在通訊中出現(xiàn)異常現(xiàn)象。
2.3 內(nèi)部EEPROM
CP2101內(nèi)部集成了一個(gè)EEPROM,可用于存儲(chǔ)由設(shè)備原始制造商定義的USB供應(yīng)商的ID、產(chǎn)品的ID說(shuō)明、電源參數(shù)、器件版本號(hào)和器件序列號(hào)等信號(hào)。USB配置數(shù)據(jù)的定義是可選的。如果EEPROM沒有被OEM的數(shù)據(jù)占用,則采用默認(rèn)方式配置數(shù)據(jù)。注意,盡管如此,對(duì)于可能使用多個(gè)基于CP2101的器件連接到同一個(gè)PC的OEM應(yīng)用來(lái)說(shuō),它們需要一個(gè)專一的序列號(hào)。
內(nèi)部EEPROM可通過(guò)USB進(jìn)行編程,以便OEM的USB配置數(shù)據(jù)和序列號(hào)可以在制造和測(cè)試時(shí)直接寫入到系統(tǒng)上的CP2101中。Silicon公司提供一種專門為CP2101內(nèi)部EEPROM進(jìn)行編程的工具,同時(shí)還提供一個(gè)Windows DLL格式的程序庫(kù)。該程序庫(kù)可在制造過(guò)程中將EEPROM編程步驟集成到OEM中,以便用自定義軟件進(jìn)行流水線式測(cè)試和序列號(hào)的管理。EEPROM的寫壽命典型值為100,000次,數(shù)據(jù)保持時(shí)間為100年。
3 應(yīng)用實(shí)例
CP2101的實(shí)際應(yīng)用參考電路如圖2所示。該電路經(jīng)過(guò)制板和調(diào)試,證明是完全可行的。
圖2
(1)以上電路支持全功能串行通信應(yīng)用。為了確保數(shù)據(jù)收發(fā)的穩(wěn)定性,避免通信過(guò)程中的干擾,還可以在USB接口端添加濾波電路。
(2)電路中采用的多通道RS-232收發(fā)器是Maxim公司的MAX241系列或MAX223等系列電路(詳情請(qǐng)參看MAXIM公司RS-232收發(fā)器數(shù)據(jù)手冊(cè)),該系列支持在掛起狀態(tài)(當(dāng)CP2101進(jìn)入掛起狀態(tài)時(shí),SUSPEND引腳變?yōu)楦唠娖?,從而使RS-232收發(fā)器亦進(jìn)入掛起狀態(tài)),保持接收外界數(shù)據(jù)有效。在 在使用電路時(shí),需要注意EN引腳及SHDN引腳的正確連接。
在很多簡(jiǎn)單的串行通信中,僅使用TXD/RXD二個(gè)引腳的信號(hào),在這種情況下可以使用通道數(shù)更少,封超更小的RS-232收發(fā)器。
(3)CP2101的底部有大片金屬,在芯片內(nèi)部接地。因此在制板時(shí)一定要保證沒有非接地通孔在CP2101的中間通過(guò),或者保證通孔不與其發(fā)生短路。為了保證電路工作的可靠性,建議不要在CP2101焊接面板層的中間部分進(jìn)行布線。
(4)CP2101的UART總線上的信號(hào)能夠被單片機(jī)等直接識(shí)別,因此應(yīng)根據(jù)具體應(yīng)用要求決定是否需要進(jìn)行電平轉(zhuǎn)換。
4 結(jié)束語(yǔ)
CP2101是一款功能強(qiáng)大的USB-UART橋接電路,5mm5mm的外型使其占用空間非常小,用它將USB口擴(kuò)展成串口非常簡(jiǎn)單易行。同時(shí)由于其內(nèi)部存儲(chǔ)產(chǎn)品的ID等信息的寄存器可以直接通過(guò)USB口改寫,因此用其開發(fā)相關(guān)產(chǎn)品還有省時(shí)省力的優(yōu)點(diǎn)。唯一遺憾的是,由于UART本身的限制,其最大波行率只能達(dá)到921600b/s,不能發(fā)揮USB2.0并沒有多大的意義。目前,CP2101的升級(jí)產(chǎn)品CP2102已經(jīng)面市。
評(píng)論