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