<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于Qt實(shí)現USB CDC便攜式設備串口通信客戶(hù)端設計

基于Qt實(shí)現USB CDC便攜式設備串口通信客戶(hù)端設計

作者:張熹 時(shí)間:2015-05-14 來(lái)源:電子產(chǎn)品世界 收藏
編者按:為實(shí)現上位機Linux系統的Qt應用程序與下位機USB CDC便攜式設備之間的串口通信,本課題采用USB CDC類(lèi)協(xié)議,并根據協(xié)議在Linux下編寫(xiě)設備驅動(dòng)程序,同時(shí),搭建Linux-QT應用平臺利用QT可視化的圖形界面及豐富的圖形庫,設計并制作上位機應用程序圖形界面,并根據Linux下串口通信的應用層協(xié)議,最終實(shí)現了在QT界面上實(shí)時(shí)顯示便攜式設備的數據、狀態(tài)和控制便攜式設備。該方法簡(jiǎn)單、可靠、便于實(shí)際工程應用,解決了安裝有Linux操作系統的上位機用戶(hù)與便攜式設備通信不方便的問(wèn)題。因此,本課題對USB

摘要:為實(shí)現上位機系統的Qt應用程序與下位機USB 之間的,本課題采用USB 類(lèi)協(xié)議,并根據協(xié)議在下編寫(xiě)設備驅動(dòng)程序,同時(shí),搭建-應用平臺利用可視化的圖形界面及豐富的圖形庫,設計并制作上位機應用程序圖形界面,并根據Linux下的應用層協(xié)議,最終實(shí)現了在界面上實(shí)時(shí)顯示的數據、狀態(tài)和控制。該方法簡(jiǎn)單、可靠、便于實(shí)際工程應用,解決了安裝有Linux操作系統的上位機用戶(hù)與便攜式設備通信不方便的問(wèn)題。因此,本課題對USB 便攜式設備用戶(hù)來(lái)說(shuō)將有廣闊的應用前景。

本文引用地址:http://dyxdggzs.com/article/273269.htm

引言

  近年來(lái),隨著(zhù)電子科技的進(jìn)步和高新技術(shù)的不斷涌現,不少設備的技術(shù)性能越來(lái)越好,體積也越來(lái)越小,易于搬運和攜帶。具有USB接口的便攜式設備已經(jīng)走進(jìn)了人們的生活。在眾多USB產(chǎn)品中,有這樣一類(lèi)USB設備廣泛應用于我們的生產(chǎn)和生活中——使用USB CDC類(lèi)協(xié)議的設備,然而對于Linux下使用此類(lèi)設備的用戶(hù)來(lái)講,幾乎不可用的。因此,需要根據CDC類(lèi)通信協(xié)議編寫(xiě)設備驅動(dòng)程序,以使用戶(hù)實(shí)現與USB CDC類(lèi)設備的數據通信。同時(shí),在上位機環(huán)境下,利用QT軟件設計實(shí)現CDC類(lèi)設備應用程序,這樣用戶(hù)就可以輕松、方便地監視設備的當前狀態(tài)和控制設備行為。

  另外,Linux是一個(gè)完全免費和基于UNIX和POSIX的用戶(hù)、多任務(wù)、支持多進(jìn)程線(xiàn)程和多核的操作系統,它具有完全兼容POSIX1.0標準、良好的界面、獨特的組織架構等特點(diǎn)。尤其是它配以擁有多種應用庫的QT軟件,使得本CDC類(lèi)設備串口通信應用程序設計簡(jiǎn)單,成本低廉,非常適合于推廣和應用。

1 USB和USB CDC協(xié)議

1.1 USB接口簡(jiǎn)介

  通用串行總線(xiàn)(Universal Serial Bus,簡(jiǎn)稱(chēng)USB)是計算機連接外部設備裝置的一個(gè)高速串行通信協(xié)議標準,如今USB2.0已廣泛地應用在計算機上,同時(shí)也擴展到了家用機頂盒和游戲機上。另外,補充標準On-The-Go(OTG)使USB設備間能夠獨立地進(jìn)行數據交換。USB的出現大大簡(jiǎn)化了計算機和其它設備的數據通信,增強了計算機的擴展性,因而得到大范圍推廣[1-2] 。

  通信接口是便攜式設備必備的對外功能模塊之一。由于現今設備的多功能特點(diǎn),造成數據傳送量呈幾何級數地增加,過(guò)去的通信協(xié)議標準如串口通信協(xié)議RS-232、并行通信接口協(xié)議LPT等存在傳輸速度低、誤碼率高、數據常常丟失等問(wèn)題[3],已不能滿(mǎn)足社會(huì )發(fā)展的需求??梢钥闯?,USB接口在便攜式設備上出現是一種必然趨勢。

1.2 CDC 類(lèi)簡(jiǎn)介

  USB通訊協(xié)議組織制定了三個(gè)類(lèi):通信設備類(lèi)、通信接口類(lèi)和數據接口類(lèi)。通訊設備類(lèi)是一種設備級別的定義,主機用該協(xié)議識別外部設備可以表現出的不同接口類(lèi)型。通信接口類(lèi)定義了一種可以使能USB上的所有類(lèi)型的通信服務(wù)的通用機制。數據接口類(lèi)定義了一種通用機制,當數據不能滿(mǎn)足其它通信類(lèi)的要求時(shí),能使USB完成塊數據或者同步傳輸功能。其中,USB CDC類(lèi)是由通信接口類(lèi)和數據接口類(lèi)組合而成。針對不同的USB通信設備,CDC類(lèi)又被分成以下三個(gè)模式:傳統純電話(huà)業(yè)務(wù)模式、 ISDN模式和網(wǎng)絡(luò )模式。而傳統純電話(huà)業(yè)務(wù)模式可分為Direct Line Control Model、ACM(Abstract Control Model)和USB Telephone Model。本文所討論的便攜式設備串口通信就屬于USB 傳統純電話(huà)業(yè)務(wù)下的ACM模式[4-5] 。

1.3 CDC 類(lèi)協(xié)議通信原理和接口函數

  USB CDC類(lèi)協(xié)議所描述的USB CDC類(lèi)設備首先像一般的USB設備被USB Core所識別和描述,其次將信息上傳至更高層協(xié)議,也就是tty協(xié)議層,最后通過(guò)線(xiàn)路規程的方式,將tty協(xié)議層和usb協(xié)議層結合使用,完成CDC類(lèi)設備通信,即tty協(xié)議層負責應用程序串口通信,usb協(xié)議層負責CDC類(lèi)設備的識別、描述和通信[9-10] ,如圖1所示。

  本文中開(kāi)發(fā)的設備驅動(dòng)涉及的主要接口函數和過(guò)程如下:首先,當CDC類(lèi)設備接入USB接口時(shí),利用初始化函數acm_init(void)初始化設備,再由探針函數acm_probe()對接入的設備識別檢測;其次,設備控制中斷函數acm_ctrl_irq()發(fā)出中斷,請求數據讀寫(xiě),其中數據讀寫(xiě)函數為:批量塊傳輸讀函數acm_read_bulk()、批量塊傳輸寫(xiě)函數acm_write_bulk();再次,打開(kāi)tty協(xié)議層設備,并進(jìn)行數據通信,主要是以下五個(gè)函數:打開(kāi)tty設備函數acm_tty_open()、關(guān)閉函數acm_tty_close()、寫(xiě)函數acm_tty_write()、中斷控制函數acm_tty_break_ctl()和IO控制函數acm_tty_ioctl();最后,需要有設備驅動(dòng)的銷(xiāo)毀和退出函數:acm_disconnect()、acm_exit(void)。


2 QT軟件介紹及其界面設計

2.1 QT軟件簡(jiǎn)介

  Qt是1991年由奇趣科技開(kāi)發(fā)的一個(gè)跨平臺C++圖形用戶(hù)界面應用程序開(kāi)發(fā)框架,它提供給應用程序開(kāi)發(fā)者建立藝術(shù)級的圖形用戶(hù)界面所需的所有功能。因此,Qt的擴展性極強,允許多組件或模塊化編程。同時(shí),Qt的跨平臺特性好,支持任何平臺的編譯與運行。另外,其獨有的信號和槽機制,使得觸發(fā)信號和數據在不同模塊間通信??梢钥闯?,QT是專(zhuān)門(mén)面向用戶(hù)對象的,提供了圖形用戶(hù)界面的應用框架和窗口系統,具有極易的開(kāi)發(fā)特性,非常適合于linux下應用程序的開(kāi)發(fā)。QT Designer實(shí)現界面設計如下[8] 。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

linux相關(guān)文章:linux教程


c++相關(guān)文章:c++教程


數字通信相關(guān)文章:數字通信原理


通信相關(guān)文章:通信原理



上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>