999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于串口的USB設(shè)備擴(kuò)展及實(shí)現(xiàn)

2012-11-20 09:06:17蔡亮明
關(guān)鍵詞:單片機(jī)

蔡亮明

(福州大學(xué)至誠(chéng)學(xué)院,福建 福州 350002)

基于串口的USB設(shè)備擴(kuò)展及實(shí)現(xiàn)

蔡亮明

(福州大學(xué)至誠(chéng)學(xué)院,福建 福州 350002)

采用CH376 U盤讀寫模塊來(lái)讀取連接在USB接口上的U盤,通過(guò)串行接口和PC來(lái)進(jìn)行數(shù)據(jù)上的交互,從而解決嵌入式產(chǎn)品中沒(méi)有USB接口而無(wú)法連接USB設(shè)備的問(wèn)題。使用CH376模塊進(jìn)行操作,具有成本低、通用性強(qiáng)、可靠性高等特點(diǎn),可方便地集成到各種系統(tǒng)中。

CH376;串口;USB設(shè)備

隨著嵌入式產(chǎn)品的迅速發(fā)展,越來(lái)越多的廠家在生產(chǎn)的汽車中加入車載導(dǎo)航系統(tǒng)。不過(guò)系統(tǒng)自帶的地圖在一段時(shí)間后可能由于道路改變或紅綠燈增減等問(wèn)題而出現(xiàn)不一致。USB設(shè)備是現(xiàn)在比較流行的數(shù)據(jù)交互的方式,但并不是所有的產(chǎn)品中都集成有USB接口,要解決這個(gè)問(wèn)題,必須在系統(tǒng)中設(shè)置一個(gè)可與USB進(jìn)行數(shù)據(jù)轉(zhuǎn)換的功能,其中一個(gè)解決方法便是在車載系統(tǒng)中加入一個(gè)U盤讀寫模塊用于和U盤進(jìn)行數(shù)據(jù)上的交互,從而實(shí)時(shí)更新地圖等文件。

1 CH376芯片

CH376[1]是由南京沁恒電子有限公司生產(chǎn)的文件管理控制芯片,用于單片機(jī)系統(tǒng)讀寫U盤或者SD卡中的文件。CH376支持USB設(shè)備方式和USB主機(jī)方式[2],并且內(nèi)置了USB通訊協(xié)議的基本固件、處理Mass-Storage海量存儲(chǔ)設(shè)備的專用通訊協(xié)議的固件、SD卡的通訊接口固件、FAT16和FAT32以及FAT12文件系統(tǒng)的管理固件,支持常用的USB存儲(chǔ)設(shè)備(包括U盤/USB硬盤/USB閃存盤/USB讀卡器)和SD卡(包括標(biāo)準(zhǔn)容量SD卡和高容量HC-SD卡以及協(xié)議兼容的MMC卡和TF卡)。

CH376支持3種通訊接口:8位并口、SPI接口和異步串口[3],單片機(jī)/DSP/MCU/MPU等控制器可以通過(guò)上述任何一種通訊接口控制CH376芯片,存取U盤或者SD卡中的文件或者與計(jì)算機(jī)通訊。

2 系統(tǒng)硬件設(shè)計(jì)

圖1 系統(tǒng)硬件框架

2.1 系統(tǒng)硬件框架

系統(tǒng)硬件框架如圖1所示,其中本地端控制器為PC(計(jì)算機(jī)),通過(guò)串行接口連接CH376模塊,將要讀取的USB設(shè)備連接到CH376模塊上,利用CH376的USB文件傳輸協(xié)議對(duì)USB設(shè)備上的文件進(jìn)行讀取,再將USB接口接受的數(shù)據(jù)轉(zhuǎn)換為串口可接受的數(shù)據(jù)類型,經(jīng)由串行通信接口將數(shù)據(jù)發(fā)送到本地端控制器上。

2.2 串行接口設(shè)計(jì)

串行接口(見(jiàn)圖2)用來(lái)連接CH376模塊和計(jì)算機(jī),是進(jìn)行數(shù)據(jù)通信的通道。芯片MAX232需要用標(biāo)準(zhǔn)RS232電平與TTL電平進(jìn)行轉(zhuǎn)換,即標(biāo)準(zhǔn)RS232電平很高,達(dá)正負(fù)15V;而常用的TTL電平最高5V。通常用的單片機(jī)是TTL電平(正負(fù)5V),RS232接口的信號(hào)電平與TTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接。

圖2 串行接口電路表

圖3 CH376操作流程圖

圖4 集成CH376芯片的PCB板

MAX232的10腳T2IN接單片機(jī)的TXD端P3.1,TTL電平從單片機(jī)的TXD端發(fā)出,經(jīng)過(guò)MAX232轉(zhuǎn)換為RS232電平后從MAX232的9腳T1OUT發(fā)出,再經(jīng)過(guò)交叉串口線連接到計(jì)算機(jī)RXD端,計(jì)算機(jī)接收數(shù)據(jù)。PC機(jī)發(fā)送數(shù)據(jù)時(shí)從PC機(jī)串口的TXD端發(fā)出數(shù)據(jù),再逆向流向單片機(jī)的RXD端P3.0接收數(shù)據(jù)。

3 軟件設(shè)計(jì)

CH376操作流程圖如圖3所示。通過(guò)VC++6.0上帶有的MSComm控件可以很方便的來(lái)進(jìn)行串口通信,首先要設(shè)定好串口通信的參數(shù)和串行接口號(hào),接著打開(kāi)串口,正式和CH376模塊建立連接,不過(guò)要讓CH376芯片開(kāi)始工作,首先還要先對(duì)CH376芯片進(jìn)行初始化,即對(duì)其工作方式和模式進(jìn)行選擇。初始化芯片和U盤完成后,就可以對(duì)U盤上的文件進(jìn)行操作,可以選擇是在U盤上新建文件或者是打開(kāi)U盤上已存在的文件,將數(shù)據(jù)返回給上位機(jī)并顯示,由于沒(méi)有中文字庫(kù)的原因,所操作的文件名稱只能是大寫英文字母。

4 USB外設(shè)擴(kuò)展的實(shí)現(xiàn)

4.1 硬件電路的安裝

1)CH376模塊的安裝 CH376 PCB板是用來(lái)安裝CH376芯片和輔助元器件的,不含單片機(jī),對(duì)外預(yù)留了8位并口、SPI接口、異步串口以及電源端口等,用于連接其他單片機(jī)主板或上位機(jī),并由單片機(jī)主板或上位機(jī)控制CH376進(jìn)行功能操作。將CH376芯片集成到PCB板上,完成后如圖4所示。

2)各模塊的集成 將集成CH376芯片的PCB板和電源模塊和串行接口模塊焊接起來(lái),其中電源模塊和5V、GND 2個(gè)引腳焊接在一起,實(shí)現(xiàn)5V的電源供電。P4端和串行接口模塊相連接,其中P4端是USB端,既可以應(yīng)用在USB-HOST模式,也可以工作在USB-DEVICE模式。連接串行接口模塊后通過(guò)串行接口模塊中的MAX3232電路將信號(hào)轉(zhuǎn)化為RS232電平,從而可以通過(guò)串行接口來(lái)與上位機(jī)上的串行接口進(jìn)行通信。

使用該USB外設(shè)擴(kuò)展設(shè)備時(shí),需將一個(gè)5V直流電源連接在電源接口上并通電,再將串行接口與計(jì)算機(jī)的串行接口相連接,將所要操作的U盤連接到CH376模塊上。至此硬件平臺(tái)的安裝就算完成了。

4.2 軟件界面的實(shí)現(xiàn)

在VisualC++6.0里新建一個(gè)MFCAppWizard工程,這時(shí)會(huì)出來(lái)一個(gè)基本的對(duì)話框如圖5所示。將軟件流程圖上的各功能做成按鈕放置在對(duì)話框里,如圖6所示。到這里,軟件的基本界面已經(jīng)出來(lái),接下來(lái)所要做的就是將各個(gè)按鈕所要實(shí)現(xiàn)的功能集成在按鈕所對(duì)應(yīng)的函數(shù)里。在DIALOG目錄下插入一個(gè)新的Dialog作為設(shè)置參數(shù)的二級(jí)對(duì)話框,作為設(shè)置串口通信參數(shù)的對(duì)話框,完成后如圖7所示。

圖5 初始對(duì)話框 圖6 進(jìn)階對(duì)話框

圖7 設(shè)置參數(shù)對(duì)話框 圖8 實(shí)際設(shè)置參數(shù)對(duì)話框

4.3 軟件功能的實(shí)現(xiàn)

1)串口通信功能控件 串口通信功能控件是整個(gè)軟件最為核心的部分,VC++6.0里自帶的MSComm控件是個(gè)功能比較強(qiáng)大的串口通信控件,將其添加到軟件里就能自動(dòng)生成一系列用于串口通信的函數(shù)。

選擇Project菜單下AddToProject子菜單中的ComponentsandControls…選項(xiàng),在彈出的對(duì)話框中雙擊RegisteredActiveXControls項(xiàng)(稍等一會(huì),這個(gè)過(guò)程較慢),則所有注冊(cè)過(guò)的ActiveX控件出現(xiàn)在列表框中。選擇MicrosoftCommunicationsControl,Version6.0,單擊Insert按鈕將它插入到Project中來(lái),接受缺省的選項(xiàng)(如果在控件列表中看不到MicrosoftCommunicationsControl,Version6.0,那可能是在安裝VC++6.0時(shí)沒(méi)有把ActiveX一項(xiàng)選上,重新安裝VC++6.0,選上ActiveX就可以了)。這時(shí)在ClassView視窗中就可以看到CMSComm類了(注意:此類在ClassWizard中看不到,重構(gòu)clw文件也一樣),并且在控件工具欄Controls中出現(xiàn)了電話圖標(biāo),現(xiàn)在要做的是用鼠標(biāo)將此圖標(biāo)拖到對(duì)話框中,程序運(yùn)行后,這個(gè)圖標(biāo)是看不到的。

CMSComm類是由MSComm控件導(dǎo)出的一系列接口函數(shù)構(gòu)成的,利用它將可以訪問(wèn)MSComm控件的屬性和方法。

2)初始化串口 初始化串口要完成的主要任務(wù)是設(shè)定所要工作的串口號(hào)和設(shè)定串口通信的參數(shù),參數(shù)的數(shù)據(jù)格式為“BBBB,P,D,S”。其中BBBB為數(shù)據(jù)傳輸率,P為奇偶校驗(yàn),D為數(shù)據(jù)位數(shù),S為停止位數(shù)。這4個(gè)屬性的缺省值是“9600,n,8,1”。由于后3位一般只有一種情況,故該功能所要實(shí)現(xiàn)的只是設(shè)定所要操作的串行接口號(hào)和數(shù)據(jù)傳輸率。

點(diǎn)擊設(shè)定參數(shù)按鈕,跳出設(shè)定參數(shù)的對(duì)話框,在對(duì)話框的串口號(hào)和波特率里輸入所要操作的串行接口號(hào)和所要設(shè)定的波特率(如圖8所示)。

3)打開(kāi)串口 在設(shè)置好串口通信的串口號(hào)和波特率后,就可以打開(kāi)串口來(lái)建立和CH376模塊的連接,打開(kāi)串口的同時(shí)還要設(shè)定一系列有關(guān)于串口通信的參數(shù),如接收緩沖區(qū)大小、發(fā)送緩沖區(qū)大小、數(shù)據(jù)傳送類型等等。

4)初始化芯片和U盤 初始化芯片和U盤所要完成的工作是設(shè)定好芯片的工作方式和讀寫U盤的模式,將CH376芯片設(shè)定在USB-HOST工作模式和異步串口通信方式,對(duì)U盤進(jìn)行初始化,即檢查U盤是否連接和是否準(zhǔn)備就緒。

5)選擇文件 在已打開(kāi)U盤的基礎(chǔ)上,實(shí)現(xiàn)在U盤上新建一個(gè)指定名稱的文件并將文件打開(kāi),如果文件已存在則直接將文件刪除。如果不新建文件而是在已有的文件上進(jìn)行操作,則直接打開(kāi)指定名稱的文件。

6)文件操作 部分文件操作部分完成3個(gè)功能,在已選定文件的情況下,對(duì)文件進(jìn)行讀取、寫入和刪除,最后關(guān)閉。讀取文件實(shí)現(xiàn)的是將指定文件的內(nèi)容讀取并顯示在軟件視圖中間的文本框中;寫入文件是將發(fā)送內(nèi)容里的文件寫入到所選擇的文件中;刪除文件即將當(dāng)前所打開(kāi)的文件從U盤上刪除;關(guān)閉文件即將當(dāng)前所選擇的文件取消選擇。

5 結(jié) 語(yǔ)

車載系統(tǒng)采用的無(wú)線模塊SM5100B-D只有一個(gè)串行通信接口,因此要實(shí)現(xiàn)對(duì)USB外設(shè)的讀寫操作,就要實(shí)現(xiàn)將數(shù)據(jù)從USB接口到串行通信接口的轉(zhuǎn)換,從而保證數(shù)據(jù)文件的正常讀寫。筆者設(shè)計(jì)的系統(tǒng)采用CH376 U盤文件管理模塊,在VC++6.0編程環(huán)境下實(shí)現(xiàn)通過(guò)串行接口對(duì)USB設(shè)備進(jìn)行數(shù)據(jù)讀寫操作,從而實(shí)現(xiàn)嵌入式系統(tǒng)中USB設(shè)備擴(kuò)展的功能。

[1]南京沁恒有限公司.U盤和SD卡文件管理控制芯片CH376手冊(cè)[EB/OL].http://wch.cn,2010-03-17.

[2][美]MindShare.USB系統(tǒng)體系[M].孟文譯.北京:中國(guó)電力出版社,2003.

[3]薛園園.USB應(yīng)用開(kāi)發(fā)實(shí)例詳解[M].北京:人民郵電出版社,2009.

[編輯] 洪云飛

10.3969/j.issn.1673-1409(N).2012.10.037

TP334.7

A

1673-1409(2012)10-N119-04

猜你喜歡
單片機(jī)
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機(jī)的便捷式LCF測(cè)量?jī)x
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機(jī)在仿真中要注意的幾點(diǎn)問(wèn)題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機(jī)的三維LED點(diǎn)陣設(shè)計(jì)
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個(gè)全新PIC單片機(jī)系列
基于Proteus的單片機(jī)控制系統(tǒng)的仿真設(shè)計(jì)
主站蜘蛛池模板: 婷婷午夜影院| 伊人久久婷婷五月综合97色| 亚洲无线国产观看| 色网站免费在线观看| 久久精品午夜视频| 在线免费看片a| 亚洲码在线中文在线观看| 亚洲一区网站| 女人18毛片水真多国产| 午夜视频在线观看免费网站| 免费中文字幕在在线不卡| 精久久久久无码区中文字幕| 美女啪啪无遮挡| 成人韩免费网站| 亚洲视屏在线观看| 夜夜操狠狠操| 福利在线免费视频| 亚洲综合国产一区二区三区| 国产成人一区| 色婷婷电影网| 99视频在线免费看| 中文字幕亚洲乱码熟女1区2区| 国产精品欧美在线观看| 中文字幕欧美日韩| 四虎免费视频网站| 亚洲男人的天堂网| 在线免费无码视频| 国产成人高清在线精品| 最新日韩AV网址在线观看| 久久精品这里只有国产中文精品| 爱色欧美亚洲综合图区| 精品三级网站| 精品无码人妻一区二区| 精品一区二区三区无码视频无码| 日本在线国产| 色偷偷一区二区三区| 国内老司机精品视频在线播出| 亚洲综合久久成人AV| 国产精品亚欧美一区二区三区| 日韩免费毛片| 性69交片免费看| 999精品在线视频| 色综合中文| 玖玖免费视频在线观看 | 亚洲国产精品无码AV| 亚洲综合中文字幕国产精品欧美| 久久久久免费看成人影片| 婷婷午夜天| 亚洲精品动漫在线观看| 国产三级韩国三级理| 久久精品aⅴ无码中文字幕 | 日本影院一区| 日韩在线播放中文字幕| 亚洲一区精品视频在线| 一级毛片视频免费| 国产97视频在线观看| 99999久久久久久亚洲| 成AV人片一区二区三区久久| 欧美在线国产| 国产人人射| 国产精品免费露脸视频| 色老头综合网| 国产精品大白天新婚身材| 亚洲一区毛片| 亚洲日韩在线满18点击进入| 自偷自拍三级全三级视频| 亚洲天堂精品视频| 精品在线免费播放| 久久亚洲国产一区二区| 亚洲欧洲日产无码AV| 婷婷六月天激情| 日本亚洲欧美在线| 日韩小视频在线播放| 婷婷成人综合| 99久久国产综合精品2023| 五月天久久婷婷| 国产丝袜无码一区二区视频| 国产精品欧美日本韩免费一区二区三区不卡 | 国产欧美在线观看精品一区污| a亚洲视频| 最新国产在线| 亚洲精品国产精品乱码不卞 |