基于USB單片機(jī)CH558的虛擬串口應(yīng)用實(shí)例

一、摘要

? ? ? 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)。

1.jpg

(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

2.jpg

3.jpg

4.jpg

此處列舉部分USB類命令。


(3)、其他端點(diǎn)數(shù)據(jù)通訊

5.jpg

五、可拓展功能

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)品,刷卡器,智能家居等。

七、源碼

icon_rar.gifUSB模擬串口.rar

請問:CH552的頭文件可以用CH554.h嗎?還有,CH552有沒有虛擬串口例程?


哪位大佬能否注釋一下下面的USBCDC配置值,各個配置值表示的意義?謝謝!

UINT8C?DevDesc[18]={
0x12,//
0x01,//
0x10,//
0x01,//
0xff,//
0x00,//
0x02,//
0x08,???????????????????//設(shè)備描述符
0x86,//
0x1a,//
0x23,//
0x55,//
0x04,//
0x03,//
0x00,//
0x00,//
0x00,//
0x01//
};

UINT8C?CfgDesc[39]={
0x09,//
0x02,//
0x27,//
0x00,//
0x01,//
0x01,//
0x00,//
0x80,//
0xf0,?//配置描述符,接口描述符,端點(diǎn)描述符
0x09,//
0x04,//
0x00,//
0x00,//
0x03,//
0xff,//
0x01,//
0x02,//
0x00,??//?????
0x07,//
0x05,//
0x82,//
0x02,//
0x20,//
0x00,//
0x00,//批量上傳端點(diǎn)
0x07,0x05,0x02,0x02,0x20,0x00,0x00,//批量下傳端點(diǎn)??????
0x07,0x05,0x81,0x03,0x08,0x00,0x01?//中斷上傳端點(diǎn)
};??????????????????????

UINT8C?DataBuf[26]={
0x30,0x00,//
0xc3,0x00,//
0xff,0xec,//
0x9f,0xec,//
0xff,0xec,//
0xdf,0xec,//
0xdf,0xec,//
0xdf,0xec,//
0x9f,0xec,//
0x9f,0xec,//
0x9f,0xec,//
0x9f,0xec,//
0xff,0xec//
};



您好

可以參考該鏈接:http://www.findthetime.net/bbs/thread-65023-1.html?

例程13


那有沒有CH552的HID+CDC例程?




您好,請將公司信息和項(xiàng)目應(yīng)用發(fā)至郵箱syl@wch.cn,我將提供您demo。



我看CDC例程中的串口波特率是固定的,請問如何修改為波特率自適應(yīng)的?


下載了CH552的HID+CDC例程中的固件,CDC串口號在電腦中始終能認(rèn),但只能第一次加載驅(qū)動時能正常通訊,重新拔插后,無法通訊,電腦系統(tǒng)是6位win7,芯片是CH552T,?CDC驅(qū)動用的是?http://www.findthetime.net/bbs/thread-84547-1.html?這個網(wǎng)頁上的驅(qū)動,用WCH-Link-SERIAL也一樣。不知是什么原因。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频