亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2012-11-20 09:06:17蔡亮明
        關(guān)鍵詞:U盤控件對話框

        蔡亮明

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

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

        蔡亮明

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

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

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

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

        1 CH376芯片

        CH376[1]是由南京沁恒電子有限公司生產(chǎn)的文件管理控制芯片,用于單片機(jī)系統(tǒng)讀寫U盤或者SD卡中的文件。CH376支持USB設(shè)備方式和USB主機(jī)方式[2],并且內(nèi)置了USB通訊協(xié)議的基本固件、處理Mass-Storage海量存儲設(shè)備的專用通訊協(xié)議的固件、SD卡的通訊接口固件、FAT16和FAT32以及FAT12文件系統(tǒng)的管理固件,支持常用的USB存儲設(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等控制器可以通過上述任何一種通訊接口控制CH376芯片,存取U盤或者SD卡中的文件或者與計(jì)算機(jī)通訊。

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

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

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

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

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

        串行接口(見圖2)用來連接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接口的信號電平與TTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接。

        圖2 串行接口電路表

        圖3 CH376操作流程圖

        圖4 集成CH376芯片的PCB板

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

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

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

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

        4.1 硬件電路的安裝

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        5 結(jié) 語

        車載系統(tǒng)采用的無線模塊SM5100B-D只有一個串行通信接口,因此要實(shí)現(xiàn)對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)通過串行接口對USB設(shè)備進(jìn)行數(shù)據(jù)讀寫操作,從而實(shí)現(xiàn)嵌入式系統(tǒng)中USB設(shè)備擴(kuò)展的功能。

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

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

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

        [編輯] 洪云飛

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

        TP334.7

        A

        1673-1409(2012)10-N119-04

        猜你喜歡
        U盤控件對話框
        正?;謴?fù)虛擬機(jī)
        采用U盤文件冗余方案實(shí)現(xiàn)TSP系統(tǒng)的可靠裝載
        Bootlace Worms’Secret etc.
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        U盤“鬧肚子”
        快速抓取對話框中的完整信息
        電腦迷(2012年22期)2012-04-29 20:30:54
        一招鑒定擴(kuò)容u盤
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        U盤丟失 隨貼尋物啟事
        在PowerBuUder中利用WinSock控件制作簡單的Web服務(wù)器
        乱子真实露脸刺激对白| 精品人妻系列无码人妻免费视频| 国产毛片av一区二区| 91亚洲精品久久久蜜桃 | 亚洲国产综合人成综合网站| 青榴社区国产精品| 精品视频一区二区三三区四区| 国产精品无码无在线观看| 日本a级免费大片网站| 人妻一区二区三区免费看| 久久这里只精品国产99热| 桃花影院理论片在线| 亚洲成av人片在www鸭子| 青青视频在线播放免费的| 亚洲av日韩av一卡二卡| 无码专区天天躁天天躁在线| 性生交片免费无码看人| 亚洲国产一区二区三区| 在线视频免费自拍亚洲| 在线a人片免费观看国产| 国产A√无码专区| 亚洲国产精品va在线播放| 女人下边被添全过视频| 中文字幕精品亚洲字幕| 亚洲一区二区三区av无| 亚洲色AV天天天天天天| 亚洲a∨天堂男人无码| 成人做爰视频www| 亚洲色爱免费观看视频| 欧洲熟妇色xxxx欧美老妇软件| 一级黄色一区二区三区| 久久精品女人天堂av麻| 色二av手机版在线| 中文字幕精品久久天堂一区 | 成人久久精品人妻一区二区三区| 亚洲综合天堂一二三区| 精品久久久久88久久久| 美女在线国产| 久久亚洲av成人无码国产 | 亚洲av乱码二区三区涩涩屋| 亚洲无人区乱码中文字幕|