色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于USB通信的多功能智能插座

          基于USB通信的多功能智能插座

          作者: 時(shí)間:2013-10-26 來(lái)源:網(wǎng)絡(luò) 收藏

          3.2 通信硬件電路設(shè)計(jì)

            本文我們選用89C52單片機(jī)作為該系統(tǒng)的微控制器。PDIUSBD12和89C52的電路連接如圖1所示:

          圖1 USB接口通信電路

          3.3 通信系統(tǒng)軟件設(shè)計(jì)

          3.3.1 USB設(shè)備開(kāi)發(fā)

            Windows2000提供了一些常見(jiàn)USB設(shè)備的,但是要使D12構(gòu)成的USB設(shè)備正常工作仍需要自己編寫(xiě)。盡管系統(tǒng)已經(jīng)提供了很多標(biāo)準(zhǔn)接口函數(shù),但編制驅(qū)動(dòng)程序仍然是USB開(kāi)發(fā)中最困難的,通常采用Windows DDK來(lái)實(shí)現(xiàn)。

          3.3.2 USB設(shè)備固件(firmware)設(shè)計(jì)

            設(shè)備固件是設(shè)備運(yùn)行的核心,采用匯編語(yǔ)言設(shè)計(jì)。其主要功能是控制芯片PDIUSBD12接受并處理USB驅(qū)動(dòng)程序的請(qǐng)求(如請(qǐng)求設(shè)備描述符、請(qǐng)求或設(shè)置設(shè)備狀態(tài)、請(qǐng)求設(shè)備設(shè)置、請(qǐng)求或設(shè)置設(shè)備接口等共10種USB1.1標(biāo)準(zhǔn)請(qǐng)求);控制芯片PDIUSBD12接受應(yīng)用程序的控制指令;控制A/D模塊的數(shù)據(jù)采集;通過(guò)PDIUSBD12存儲(chǔ)數(shù)據(jù)并實(shí)時(shí)上傳PC。

            下位機(jī)程序主要的工作是初始化D12,通過(guò)D12進(jìn)行數(shù)據(jù)傳輸以及按協(xié)議對(duì)數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換。USB單片機(jī)控制程序通常由三部分組成:第一,初始化部分,完成單片機(jī)和所有的外圍電路(包括D12)的初始化;第二,主循環(huán)部分,等待來(lái)自數(shù)據(jù)采集設(shè)備或上位機(jī)的數(shù)據(jù),并啟動(dòng)數(shù)據(jù)格式轉(zhuǎn)換程序,進(jìn)行數(shù)據(jù)通信,是固件的主體部分;第三,中斷服務(wù)程序,由上位機(jī)和數(shù)據(jù)采集設(shè)備觸發(fā),進(jìn)行一些低工作量的實(shí)時(shí)處理(如置相應(yīng)標(biāo)志位),然后在主循環(huán)部分對(duì)數(shù)據(jù)作進(jìn)一步的處理。

          PDIUSBD12的初始化過(guò)程如下:

            (1) 設(shè)置地址使能;

            (2) 設(shè)置端點(diǎn)(EndPoint)使能(這時(shí)候LED亮);

            (3) 軟斷開(kāi)(Disconnect);

            (4) 延時(shí)(1~2s);

            (5) 軟連接(Soft Connect ,用Set Mode命令,此時(shí)LED滅);

            (6) 中斷使能,等待中斷。

            (7)響應(yīng)來(lái)自主機(jī)的Setup包,完成枚舉。步驟3~5就是利用Soft Connect TM技術(shù),不必進(jìn)行物理插拔而使主機(jī)初始化USB總線。雖然USB協(xié)議對(duì)枚舉過(guò)程作了統(tǒng)一的規(guī)定,但是不同公司的芯片實(shí)現(xiàn)起來(lái)可能有所不同。USB枚舉的過(guò)程實(shí)際上就是主機(jī)和USB設(shè)備的一個(gè)握手過(guò)程:主機(jī)發(fā)送出包含某個(gè)枚舉請(qǐng)求的Setup包,USB設(shè)備響應(yīng)該請(qǐng)求并返回必要的信息。在主機(jī)得到所需要的所有USB設(shè)備的信息之后,枚舉即告結(jié)束。

            D12構(gòu)成的USB設(shè)備的枚舉過(guò)程如下:(1)Get Device Descriptor: 主機(jī)請(qǐng)求代碼為8006000100004000,然后89C52通過(guò)D12發(fā)送設(shè)備描述符,第一次只需發(fā)送設(shè)備描述的前8個(gè)字節(jié),如:1201000100000010。(2)Set Address: 主機(jī)請(qǐng)求代碼為0005020000000000,說(shuō)明主機(jī)設(shè)置其地址為0X02,收到該請(qǐng)求后D12只需使能該地址(0X82),并對(duì)控制輸入端寫(xiě)0長(zhǎng)度的數(shù)據(jù)。(3)讀取全部Device Descriptor: 主機(jī)請(qǐng)求代碼為8006000100001200,與1不同的是此時(shí)是讀取全部設(shè)備描述符,一般為18個(gè)字節(jié),可以分為多次傳輸,D12發(fā)送的前8字節(jié)與1相同,后10個(gè)字節(jié)為:71048888000100000001。其中,前兩個(gè)字節(jié)是廠商ID(VID),本例中的為0X0471,即分配給Philips公司的ID號(hào)。后兩個(gè)字節(jié)是設(shè)備ID(PID),設(shè)計(jì)定義為0X8888。VID和PID決定了驅(qū)動(dòng)程序的匹配,一定要與最后生成的主機(jī)驅(qū)動(dòng)程序一致。(4)Get Config Descriptor: 主機(jī)請(qǐng)求代碼為8006000200000900,根據(jù)USB協(xié)議的定義,第四字節(jié)的0X02表明該請(qǐng)求是一配置描述符請(qǐng)求。D12發(fā)送9字節(jié)的配置描述符給主機(jī),為09022e000101006001。(5)讀取全部Config Descriptor: 主機(jī)請(qǐng)求代碼為8006000200001200,此時(shí)D12必須把包括配置描述符、接口描述符、各端點(diǎn)(D12為四個(gè))的描述符在內(nèi)的所有的配置情況分多次發(fā)送給主機(jī)。(6)如果以上步驟都正確,主機(jī)將找到新設(shè)備,提示安裝驅(qū)動(dòng)程序,否則找到未知設(shè)備,不可用。安裝驅(qū)動(dòng)程序后,以后的每次設(shè)備插入,枚舉次序與以上步驟略有不同,之后會(huì)有Set Configuration、Get Configuration和Get Interface等調(diào)用。

          3.3.3系統(tǒng)應(yīng)用程序設(shè)計(jì)

            PC機(jī)應(yīng)用程序是該插座數(shù)據(jù)采集系統(tǒng)的中心,采用VC++6.0編程。其功能主要有:開(kāi)啟或關(guān)閉USB設(shè)備、檢測(cè)USB設(shè)備、設(shè)置USB數(shù)據(jù)傳輸管道(pipe)、設(shè)置A/D狀態(tài)和數(shù)據(jù)采集端口、實(shí)時(shí)從USB接口采集數(shù)據(jù)、存儲(chǔ)顯示并分析數(shù)據(jù)。程序主框圖如圖2所示:

          4.工業(yè)用的智能監(jiān)測(cè)插座

          4.1 在工業(yè)現(xiàn)場(chǎng)的局限

            USB電纜的最大傳輸距離是5米,因此上述的方案僅適用于家庭用的監(jiān)測(cè)插座。即使增加了中繼或HUB,USB傳輸距離通常也不超過(guò)幾十米,這對(duì)工業(yè)現(xiàn)場(chǎng)而言顯然是太小了。目前,工業(yè)現(xiàn)場(chǎng)有大量采用RS-485傳輸數(shù)據(jù)的采集設(shè)備。RS-485總線傳輸距離可以達(dá)到1200m以上,并且可以掛接多個(gè)設(shè)備。不足之處是傳輸速度慢、可靠性差、需要板卡的支持、成本高、安裝麻煩等。RS-485的這些缺點(diǎn)恰好能被USB所彌補(bǔ),而USB傳輸距離的限制又是RS-485的優(yōu)勢(shì)所在。為此,我們采用一種RS-485和USB的接口轉(zhuǎn)換卡來(lái)解決上述問(wèn)題。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉