一、摘要
? ? ? CH55X系列內(nèi)置USB全速主從控制器,可用于各種USB主機(jī)和設(shè)備應(yīng)用。本文主要介紹CH55X虛擬串口的實(shí)現(xiàn)和相關(guān)應(yīng)用。
二、總體概述
? ? ? 在USB標(biāo)準(zhǔn)子類中,有一類稱之為CDC類,可以實(shí)現(xiàn)虛擬串口通信的協(xié)議,而且由于大部分的操作系統(tǒng)(Windows和Linux)都帶有支持CDC類的設(shè)備驅(qū)動程序,可以自動識別CDC類的設(shè)備,這樣不僅免去了寫專用設(shè)備驅(qū)動的負(fù)擔(dān),同時簡化了設(shè)備驅(qū)動的安裝。
(1)、CDC類簡介
? ? ? ?USB的CDC類是USB通信設(shè)備類(Communication Device Class)的簡稱。CDC類是USB組織定義的一類專門給各種通信設(shè)備(電信通信設(shè)備和中速網(wǎng)絡(luò)通信設(shè)備)使用的USB子類。根據(jù)CDC類所針對通信設(shè)備的不同,CDC類又被分成以下不同的模型:USB傳統(tǒng)純電話業(yè)務(wù)(POTS)模型,USB ISDN模型和USB網(wǎng)絡(luò)模型。其中,USB傳統(tǒng)純電話業(yè)務(wù)模型,有可分為直接線控制模型(Direct Line Control Model)、抽象控制模型(Abstract Control Model)和USB電話模型(USB Telephone Model)。
(2)、CH34X簡介
CH34X在USB轉(zhuǎn)串口方面應(yīng)用非常廣泛,市場份額也比較大,作為沁恒公司比較典型的USB接口芯片,市場的接受度和認(rèn)可度都比較高。CH34X是一種類似于USB CDC類的廠商自定義設(shè)備類,通過USB虛擬串口的方式和操作系統(tǒng)進(jìn)行數(shù)據(jù)交換。
(3)、CH55X模擬CH34X
隨著手持設(shè)備日益普遍和一些應(yīng)用或者測試條件的變化,部分應(yīng)用希望將USB轉(zhuǎn)串作為一個模塊功能做到主控當(dāng)中,這樣既能節(jié)省硬件成本,PCB走線布板也精簡很多,以下將主要介紹CH55X模擬CH34X的實(shí)現(xiàn)關(guān)鍵點(diǎn)。?
(4)、USB設(shè)備接入主機(jī)主要包括以下幾個階段
*設(shè)備插入并且主機(jī)供電;
*主機(jī)和設(shè)備USB標(biāo)準(zhǔn)命令交互階段;
*主機(jī)和設(shè)備USB類命令交互階段;
*主機(jī)和設(shè)備非控制端點(diǎn)數(shù)據(jù)通訊;
*設(shè)備移除;
A.檢測設(shè)備連接
當(dāng)設(shè)備沒有插入時,集線器下游端口的D+和D-線上都是低電平,協(xié)議定義為SE0(Single-Ended 0)。
當(dāng)有設(shè)備接入到集線器下游端口時,D+和D-有一個由低變高電平的狀態(tài)階段,這個狀態(tài)階段一般為2.5us。
當(dāng)設(shè)備移除時,D+和D-同樣也會有一個由高到底的狀態(tài)階段,同樣持續(xù)約2.5us。
B.主機(jī)和設(shè)備標(biāo)準(zhǔn)命令交互階段
? ? ? ?一般包括獲取設(shè)備描述符、設(shè)置設(shè)備地址、獲取配置描述符、獲取語言描述符、設(shè)置設(shè)備接口;
C.主機(jī)和設(shè)備類命令交互階段
? ? ? ?USB設(shè)備分類,USB-IF將具有相同/相似功能的設(shè)備歸為一類,并制定和相關(guān)設(shè)備類規(guī)范,這樣在操作系統(tǒng)端就無需為每種設(shè)備提供獨(dú)立的設(shè)備驅(qū)動程序,同時也會簡化上層驅(qū)動的處理。但是USB-IF制定的設(shè)備類規(guī)范并不能涵蓋所有的電子設(shè)備,市場上也有很多非標(biāo)準(zhǔn)的USB設(shè)備,這是就要求廠商提供單獨(dú)的客戶端驅(qū)動程序。
? ? ? ?CH34X就是廠商自定義設(shè)備類型,所有需要安裝驅(qū)動,驅(qū)動下載地址會在源碼部分給出。
三、硬件設(shè)計(jì)
? ? ?模擬CH34X主要是軟件工作,硬件上用CH551/CH552/CH553/CH558/CH559都可以實(shí)現(xiàn),都可以使用芯片內(nèi)置晶振,基本上無需其他外圍器件。
? ? ? ?CH559/CH558是兼容MCS51的增強(qiáng)型E8051內(nèi)核單片機(jī),79%的指令是單字節(jié)單周期指令,內(nèi)置60K Code Flash,6K+256B Ram。CH559 內(nèi)嵌USB控制器和雙USB收發(fā)器,支持 USB-Host 主機(jī)模式和 USB-Device 設(shè)備模式,支持 USB 2.0 全速 12Mbps 或者低速 1.5Mbps,USB 主機(jī)模式下可以通過雙端口 Root-HUB 同時管理兩個 USB 設(shè)備。支持最大 64 字節(jié)數(shù)據(jù)包,內(nèi)置 FIFO,支持 DMA。
? ? ? ?CH554/CH553/CH552/CH551是兼容MCS51的增強(qiáng)型E8051內(nèi)核單片機(jī),79%的指令是單字節(jié)單周期指令,內(nèi)置24MHz時鐘源,內(nèi)置1K+256B RAM,16KB iFlash-ROM。CH554提供豐富的接口資源,包括ADC模數(shù)轉(zhuǎn)換、3組定時器和信號捕捉及PWM、雙異步串口、SPI等。CH554提供6通道電容檢測模塊,互電容方式支持最多15個觸摸按鍵。CH554內(nèi)嵌全速USB控制器,支持USB HOST主機(jī)模式和USB DEVICE設(shè)備模式。
四、軟件設(shè)計(jì)
? ? ? (1)、USB設(shè)備功能開啟
? ? ? (2)、CH55X連接PC
此處列舉部分USB類命令。
(3)、其他端點(diǎn)數(shù)據(jù)通訊
五、可拓展功能
CH55X模擬CH34X,主機(jī)安裝驅(qū)動后可以直接通過串口調(diào)試工具進(jìn)行數(shù)據(jù)收發(fā)的演示,可以拓展功能如下:
? ? ? A.CH55X同時可以擴(kuò)展并口、SPI、串口、GPIO、PWM、定時器等接口;
? ? ? B.提供的安卓APP方便與Android手持終端的數(shù)據(jù)交互;
六、應(yīng)用場合
? ? ? 汽車電子、手機(jī)周邊、游戲產(chǎn)品,刷卡器,智能家居等。
七、源碼