關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于USB從機(jī)技術(shù)的絕緣電阻表自動(dòng)檢定系統(tǒng)通信接口設(shè)計(jì)

基于USB從機(jī)技術(shù)的絕緣電阻表自動(dòng)檢定系統(tǒng)通信接口設(shè)計(jì)

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

隨著我國(guó)電力工業(yè)的快速發(fā)展,電氣設(shè)備預(yù)防性實(shí)驗(yàn)成為保障電力系統(tǒng)安全運(yùn)行和維護(hù)工作的一個(gè)重要環(huán)節(jié)[1]。絕緣診斷是檢測(cè)電氣設(shè)備絕緣缺陷或故障的重要手段。絕緣電阻表作為測(cè)試絕緣電阻的專(zhuān)用儀表,要保證其測(cè)量精度在國(guó)家規(guī)定范圍之內(nèi),須定期進(jìn)行檢定。目前的絕緣電阻表檢定系統(tǒng)均為孤立檢測(cè)裝置,其報(bào)表生成和對(duì)歷史數(shù)據(jù)的查詢(xún)均由人工完成,已無(wú)法滿足儀表檢定行業(yè)對(duì)該檢定裝置的智能化要求[2]。
作為一種基于令牌式且對(duì)外設(shè)有統(tǒng)一接口的新型高速串行標(biāo)準(zhǔn)總線,具有使用便捷、易擴(kuò)展、低成本、低干擾、速度快等特點(diǎn)[3],將從機(jī)技術(shù)應(yīng)用于絕緣電阻表自動(dòng)檢定系統(tǒng),使現(xiàn)有孤立的檢定裝置[1]與主機(jī)有機(jī)地融合成智能化檢定裝置,實(shí)現(xiàn)檢測(cè)數(shù)據(jù)快速上傳,配合主機(jī)軟件系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)可自動(dòng)、快速生成檢定報(bào)表(檢定原始記錄、檢定證書(shū)、檢定通知書(shū)等),設(shè)備送檢單位可在較短時(shí)間內(nèi)得到直觀、準(zhǔn)確的檢定結(jié)果,減少了人工操作,提高了檢定效率。在信息管理系統(tǒng)中,檢定裝置與主機(jī)可快速進(jìn)行信息交互,達(dá)到檢定裝置的智能化要求。
1 絕緣電阻表自動(dòng)檢定系統(tǒng)構(gòu)成
 基于從機(jī)技術(shù)的絕緣電阻表自動(dòng)檢定系統(tǒng)為MCU+PC結(jié)構(gòu)形式,MCU單元完成數(shù)據(jù)檢測(cè)功能,檢測(cè)單元采用8 bit MCU,主要完成數(shù)據(jù)顯示、存儲(chǔ)、通信、功能選擇及初始化等工作,PC單元完成報(bào)表生成功能。其結(jié)構(gòu)如圖1所示。

 在絕緣電阻表自動(dòng)檢測(cè)系統(tǒng)中,由從機(jī)檢測(cè)8位十進(jìn)制開(kāi)關(guān)信號(hào),經(jīng)從機(jī)處理后存入相應(yīng)數(shù)據(jù)的存儲(chǔ)區(qū)。檢定時(shí),利用按鍵、程序下載口或USB接口進(jìn)行檢定參數(shù)設(shè)定;然后將檢測(cè)的電阻信息、溫濕度信息及檢測(cè)參數(shù)信息送入存儲(chǔ)器保存并顯示;最后將主機(jī)所需信息經(jīng)USB從機(jī)接口快速上傳或經(jīng)USB主機(jī)接口實(shí)現(xiàn)報(bào)表快速輸出;在從機(jī)模式時(shí),依靠主機(jī)發(fā)送指令來(lái)完成數(shù)據(jù)的自動(dòng)檢測(cè)和快速上傳。
 本文選用CH375A芯片作為USB總線接口控制器,其內(nèi)部集成了PLL倍頻器、主從USB接口SIE、數(shù)據(jù)緩沖區(qū)、被動(dòng)并行接口、異步串行接口、命令解釋器、控制傳輸?shù)膮f(xié)議處理器、通用的固件程序等部件[3]。CH375A還具備串行、并行通信兩種接口方式以及主機(jī)(HOST)、從機(jī)(DEVICE/SLAVE)兩種工作模式。本設(shè)計(jì)采用并行通信、從機(jī)模式的被動(dòng)接口硬件連接方式和內(nèi)部固件編程方法,通過(guò)中斷方式控制數(shù)據(jù)傳輸。可將多個(gè)CH375A直接掛接到MCU系統(tǒng)總線上,實(shí)現(xiàn)外圍設(shè)備及器件共存。在從機(jī)模式時(shí),端點(diǎn)2的上傳區(qū)和下傳區(qū)各有64 B的數(shù)據(jù)緩沖單元;上傳、下傳端點(diǎn)號(hào)地址分別為0x82和0x02;主機(jī)端輸出和輸入端點(diǎn)各有64 B的數(shù)據(jù)緩沖區(qū),且與端點(diǎn)2共享一組緩沖區(qū),即主機(jī)端的輸出緩沖區(qū)為端點(diǎn)2的上傳緩沖區(qū),輸入緩沖區(qū)為端點(diǎn)2的下傳緩沖區(qū)。本設(shè)計(jì)正好利用該特點(diǎn),通過(guò)端點(diǎn)2批量上傳和下傳數(shù)據(jù)到緩沖區(qū),實(shí)現(xiàn)信息快速交互。
系統(tǒng)選用具有超強(qiáng)抗干擾、高速、低功耗的8 bit STC89C52RD+單片機(jī)為從機(jī)核心控制器,其內(nèi)置看門(mén)狗 WATCH-DOG電路、512 B RAM和4 KB Flash存儲(chǔ)器[4],使用時(shí)無(wú)需擴(kuò)展存儲(chǔ)器和附加外置看門(mén)狗電路。簡(jiǎn)化的外圍電路,可方便地應(yīng)用到絕緣電阻表自動(dòng)檢測(cè)系統(tǒng)中。
 系統(tǒng)中的USB接口主要用于主機(jī)與從機(jī)間信息的快速傳輸。通過(guò)主機(jī)軟件可快速實(shí)現(xiàn)主機(jī)模式與從機(jī)模式的切換。在從機(jī)模式時(shí),可為主機(jī)快速添加設(shè)備,設(shè)備插入后,實(shí)現(xiàn)從機(jī)信息快速上傳和報(bào)表信息的快速生成。主機(jī)模式下可實(shí)現(xiàn)檢測(cè)報(bào)表快速輸出。下面詳細(xì)介紹該通信接口的硬件設(shè)計(jì)和軟件實(shí)現(xiàn)方法。
2 系統(tǒng)通信接口硬件設(shè)計(jì)
 絕緣電阻表自動(dòng)檢定系統(tǒng)由USB接口電路、STC89C52RD+單片機(jī)、電源電路、時(shí)鐘電路、看門(mén)狗電路、人機(jī)接口電路、電阻信息檢測(cè)電路、存儲(chǔ)器電路、溫濕度檢測(cè)電路、打印機(jī)接口電路和程序下載電路等硬件組成。
該通信接口的硬件電路主要由USB從機(jī)控制芯片CH375A、USB插座、電源、信號(hào)線及保護(hù)電路組成。CH375A與STC89C52RD+單片機(jī)組成的USB通信接口電路如圖2所示。

 圖中,CH375A的數(shù)據(jù)總線(D0~D7)與STC89C52RD+的P0端口相連,地址數(shù)據(jù)選擇輸入端(A0)與P2.0相連,讀信號(hào)控制端(RD#)與P3.7相連,寫(xiě)信號(hào)控制端(WR#)與P3.6相連,片選信號(hào)控制端(CS#)與P2.1相連,中斷信號(hào)輸出端(INT#)與P3.2相連。可靈活地選用位尋址或總線方式編程,也可在不變動(dòng)硬件電路的情況下,完成CH375A主機(jī)模式與從機(jī)模式的相互切換。當(dāng)CS#為低電平時(shí),選中CH375A芯片,若A0為低電平,選擇數(shù)據(jù)端口,可進(jìn)行數(shù)據(jù)讀寫(xiě);若A0為高電平,選擇命令端口,可進(jìn)行命令的寫(xiě)入。當(dāng)采用總線方式編程時(shí),CH375A的命令地址和數(shù)據(jù)地址分別為0x81000、x8000。采用12 MHz晶振、并行數(shù)據(jù)傳送方法和優(yōu)化的模塊化軟件,全速模式下,其傳輸速度可達(dá)12 Mb/s[3]。
 從機(jī)工作電源由主機(jī)USB接口總線提供,根據(jù)USB 2.0總線規(guī)范,主機(jī)可提供4.4~5.25 V的電壓、總線電流為100 mA的電源,其中最大總線電流不超過(guò)500 mA[5]。據(jù)此要求,參見(jiàn)圖2,圖中Vcc為5 V電源,經(jīng)2 Ω常溫?zé)崦綦娮鑂1限流,其壓降小于0.3 V,達(dá)到了從機(jī)系統(tǒng)的供電要求。
 工業(yè)環(huán)境的干擾因素非常復(fù)雜,系統(tǒng)電磁兼容設(shè)計(jì)十分重要[6]。當(dāng)接口切換至主機(jī)模式時(shí),外設(shè)與USB接口共用MCU電源,存儲(chǔ)器插入時(shí)會(huì)導(dǎo)致電流瞬間變化,對(duì)檢定系統(tǒng)產(chǎn)生干擾;另外,靜電和雷擊也會(huì)對(duì)裸露USB接口構(gòu)成破壞。因此,在CH375A的V3引腳接入1 μF去耦電容、電源接入點(diǎn)并接兩個(gè)100 μF去耦電容、數(shù)據(jù)總線(D0~D7)上串接22 Ω抑制共模干擾的電阻和10 kΩ的上拉電阻;在PCB設(shè)計(jì)時(shí),盡量使晶振和去耦電容靠近CH375A芯片,以減小寄生電容的產(chǎn)生;為了減小外部信號(hào)串入干擾,信號(hào)線D+和D-貼近、平行且在兩側(cè)布置地線,為了減少系統(tǒng)高頻輻射對(duì)其他電路的影響,在元件周?chē)贾昧谁h(huán)繞地線;并在系統(tǒng)接口外部實(shí)施整體屏蔽,降低測(cè)試高壓對(duì)接口的影響。
3 系統(tǒng)通信接口軟件設(shè)計(jì)
 絕緣電阻表自動(dòng)檢定系統(tǒng)的軟件主要包括從機(jī)應(yīng)用程序、CH375內(nèi)部固件程序、Windows平臺(tái)下的USB驅(qū)動(dòng)程序、應(yīng)用程序和微打印應(yīng)用程序五部分,如圖3所示。


 在從機(jī)應(yīng)用程序中,采用總線(字節(jié))編程方式和中斷方式讀寫(xiě)數(shù)據(jù),由CH375A初始化程序模塊(包括VID和PID設(shè)定、CH375A工作模式設(shè)定、中斷系統(tǒng)初始化)、內(nèi)部固件程序模塊和數(shù)據(jù)檢測(cè)程序模塊、信息交互程序(讀寫(xiě)程序)模塊、主機(jī)模式下報(bào)表輸出程序模塊等組成;在主機(jī)應(yīng)用程序中,利用 API函數(shù)對(duì)CH375A數(shù)據(jù)緩沖區(qū)中數(shù)據(jù)進(jìn)行讀寫(xiě)操作,以C++ Builder 2010為軟件平臺(tái)進(jìn)行主機(jī)界面開(kāi)發(fā),access 2003為軟件平臺(tái)進(jìn)行信息管理系統(tǒng)開(kāi)發(fā),Word 2003為軟件平臺(tái)進(jìn)行報(bào)表編輯和輸出開(kāi)發(fā),XML為C++ Builder 2010與Word 2003之間數(shù)據(jù)交換橋梁。下面詳細(xì)介紹通信接口關(guān)鍵部分的程序設(shè)計(jì)、源代碼及程序說(shuō)明。
3.1 系統(tǒng)通信接口從機(jī)關(guān)鍵部分程序設(shè)計(jì)
 從機(jī)應(yīng)用程序主要包括CH375A讀寫(xiě)子程序、CH375A初始化子程序、信息交互子程序(中斷子程序)、檢測(cè)子程序和微打印機(jī)控制程序等部分。其中,讀寫(xiě)子程序是依據(jù)CH375A讀寫(xiě)時(shí)序,采用字節(jié)尋址方法進(jìn)行,利用宏定義方法對(duì)數(shù)據(jù)端口和命令端口進(jìn)行定義,以降低程序?qū)τ布囊蕾?lài),增強(qiáng)程序的可讀性和移植性。
CH375A讀寫(xiě)子程序如下:
//寫(xiě)命令子函數(shù)
void CH375_Write_Cmd(uchar cmd)
{ CH375_CMD_PORT=cmd;
}
//寫(xiě)數(shù)據(jù)子函數(shù)
void CH375_Write_Dat(uchardat)
{ CH375_DAT_PORT=dat;
}
//讀數(shù)據(jù)子函數(shù)
uchar CH375_Read_Dat()
{ return CH375_DAT_PORT;
}

在初始化程序模塊中,首先將芯片的VID和PID寫(xiě)入CH375A(可采用默認(rèn)值);再將工作模式2(模式2為設(shè)備模式,若要實(shí)現(xiàn)接口功能切換,此模式為默認(rèn)模式,接口連接識(shí)別成功后,在設(shè)定時(shí)間內(nèi)若無(wú)數(shù)據(jù)輸入,則自動(dòng)切換至主機(jī)模式)寫(xiě)入CH375A中;20 ms后開(kāi)放中斷,完成初始化。
在信息交互程序模塊中,當(dāng)CH375A收到數(shù)據(jù)或發(fā)送完數(shù)據(jù)后,INT#引腳產(chǎn)生低電平,申請(qǐng)單片機(jī)中斷,隨即進(jìn)入從機(jī)中斷函數(shù),進(jìn)行信息傳輸和處理。信息交互程序流程如圖4所示。

 進(jìn)入中斷后,首先讀取(GET_STATUS)中斷狀態(tài),同時(shí)清除當(dāng)前中斷請(qǐng)求。然后對(duì)讀入狀態(tài)進(jìn)行分析判斷,若狀態(tài)為EP2_OUT,表示CH375A成功接收到下傳數(shù)據(jù),再鎖定數(shù)據(jù)緩沖區(qū),防止數(shù)據(jù)緩沖區(qū)數(shù)據(jù)遭到破壞;若狀態(tài)為EP2_IN,表示數(shù)據(jù)上傳已成功,此時(shí)CH375A的數(shù)據(jù)緩沖區(qū)仍處于鎖定狀態(tài),需軟件解鎖。CH375A成功接收到數(shù)據(jù)后,從機(jī)通過(guò)API函數(shù)RD_USB_DATA讀取數(shù)據(jù),讀入后緩沖區(qū)自動(dòng)解鎖。然后判斷是否有數(shù)據(jù)上傳,有則通過(guò)API函數(shù)WR_USB_DATA7進(jìn)行上傳,完成后退出;否則自動(dòng)退出。當(dāng)CH375A將數(shù)據(jù)成功上傳后,主機(jī)判斷是否還有數(shù)據(jù)要上傳,有則利用WR_USB_DATA7進(jìn)行數(shù)據(jù)上傳,完成后利用API函數(shù)USB_UNLOCK對(duì)CH375的數(shù)據(jù)緩沖區(qū)進(jìn)行解鎖,然后退出;否則利用USB_UNLOCK對(duì)數(shù)據(jù)緩沖區(qū)進(jìn)行解鎖,然后退出。
 若CH375A工作在主機(jī)模式下,此時(shí)可啟用報(bào)表輸出程序。由STC89C52RD+來(lái)檢測(cè)微型打印機(jī)狀態(tài)和選通微型打印機(jī),條件滿足后,從機(jī)將檢測(cè)信息及檢定輔助信息經(jīng)CH375A并行接口輸出到微型打印機(jī),完成報(bào)表的自動(dòng)生成。使系統(tǒng)擺脫對(duì)主機(jī)的依賴(lài),實(shí)現(xiàn)系統(tǒng)對(duì)報(bào)表快速輸出的功能。報(bào)表輸出模塊程序流程如圖5所示。
3.2 系統(tǒng)通信接口主機(jī)關(guān)鍵部分程序設(shè)計(jì)
 絕緣電阻表自動(dòng)檢定系統(tǒng)主機(jī)應(yīng)用程序主要包括Windows平臺(tái)下的USB驅(qū)動(dòng)程序、主機(jī)應(yīng)用程序及報(bào)表輸出程序。
 本文采用組件庫(kù)豐富且支持強(qiáng)大網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)功能的C++ Builder 2010作為前臺(tái)軟件開(kāi)發(fā)平臺(tái)。首先,利用C++ Builder新建一個(gè)DLL類(lèi)的(動(dòng)態(tài)鏈接庫(kù))工程;再以DllEntryPoint為入口函數(shù)、dllimport為出口函數(shù)創(chuàng)建CH373A的動(dòng)態(tài)鏈接庫(kù);然后將創(chuàng)建的CH375DLL.H、CH375DLL.LIB、CH375DLL.DEF文件導(dǎo)入工程中,即可完成動(dòng)態(tài)庫(kù)的鏈接。通過(guò)調(diào)用CH375OpenDevice(0)來(lái)開(kāi)啟CH375A從機(jī)設(shè)備[7],將CH375DLL.H文件中定義的變量INVALID_HANDLE_VALUE與返回值比較,若相等,則表示CH375A設(shè)備打開(kāi)成功,否則表示設(shè)備打開(kāi)失敗,主機(jī)界面中可顯示相應(yīng)提示信息;依據(jù)協(xié)議,做好等待從機(jī)信息準(zhǔn)備;完成后退出。主機(jī)與CH375A進(jìn)行信息交互的流程,如圖6所示。

 若將C++ Builder 2010的Timer控件觸發(fā)時(shí)間設(shè)為100 μs,1 s內(nèi)可完成10 000次批量數(shù)據(jù)傳輸。完全可以滿足用戶(hù)對(duì)絕緣電阻表自動(dòng)檢測(cè)系統(tǒng)的快速檢定要求。目前,該系統(tǒng)已投入使用,其絕緣電阻表自動(dòng)檢定系統(tǒng)與上位機(jī)間進(jìn)行USB通信的測(cè)試界面如圖7所示。

 本設(shè)計(jì)基于USB從機(jī)技術(shù)的通信接口,可自動(dòng)識(shí)別主機(jī)和微型打印機(jī),實(shí)現(xiàn)設(shè)備的快速連接。在絕緣電阻表自動(dòng)檢定系統(tǒng)中應(yīng)用,使得原有檢測(cè)裝置與主機(jī)融為一體,可完成數(shù)據(jù)的自動(dòng)檢測(cè)、快速上傳及自動(dòng)生成編輯功能強(qiáng)大的Word報(bào)表,系統(tǒng)數(shù)據(jù)庫(kù)方便了用戶(hù)對(duì)檢定數(shù)據(jù)的管理,提高了工作效率,實(shí)現(xiàn)了自動(dòng)化、智能化檢定。本文采用C語(yǔ)言模塊化編程方式,可快速移植和二次開(kāi)發(fā),有利于USB從機(jī)技術(shù)在智能檢測(cè)設(shè)備和高速數(shù)據(jù)采集系統(tǒng)中的廣泛應(yīng)用。
參考文獻(xiàn)
[1] 楊世海,陳彥華.電測(cè)儀表及其應(yīng)用[M].北京:中國(guó)電力出版社,2009.
[2] 中國(guó)經(jīng)濟(jì)報(bào)告課題組.2010年儀表檢定儀行業(yè)發(fā)展研究報(bào)告[R].北京:北京君略產(chǎn)業(yè)研究院,2010.
[3] 周洪建.基于DriverStudio的USB設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)[J].福建電腦,2007(10):141-142.
[4] USB總線接口芯片CH375中文手冊(cè).http://www.winchiphead.com/download/CH375/CH375DS1.PDF.2011-02-11.
[5] 李云勝,李曉虹.基于STC單片機(jī)的商品電子防盜系統(tǒng)設(shè)計(jì)[J].自動(dòng)化與儀表,2009(7):38-41.
[6] 張林昌.發(fā)展我國(guó)的電磁兼容事業(yè)[J].電工技術(shù)學(xué)報(bào), 2005,20(2):23-28.
[7] 周興,戴勝華.基于單片機(jī)的USB數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].儀器儀表標(biāo)準(zhǔn)化與計(jì)量,2006(1):25-27.



關(guān)鍵詞: USB

評(píng)論


相關(guān)推薦

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

關(guān)閉