<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>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 帶USB接口的電子巡更系統的設計

帶USB接口的電子巡更系統的設計

作者: 時(shí)間:2004-12-07 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:介紹一種具有數據傳輸速度快、支持熱插拔和充電方便等特點(diǎn)的;闡述硬件電路及工作原野,并介紹該系統的軟件組成及流程圖。

關(guān)鍵詞: 信息鈕扣 設備驅動(dòng)程序

電子巡更系統是智能樓宇中保安系統的一個(gè)子系統。保安巡更時(shí),需按指定的路線(xiàn)和時(shí)間,依次以達各個(gè)巡更點(diǎn)進(jìn)行巡更。在此系統中,各巡更點(diǎn)設有信息鈕扣,保安用巡更機讀取信息鈕及當前時(shí)間。巡更完畢后,將巡更機交至安保中心,使之與計算機的相連,將存儲在巡更機中的巡更數據輸入計算機。所以,通過(guò)它可以了解保安的巡更情況,有效地管理和督促保安的工作。

1996年,Intel、Microsoft、IBM等七家公司共同推出USB1.0通用串行接口標準,隨后帶USB接口的產(chǎn)品陸續出現。USB接口具有速度快、支持熱插拔和即插即用、易擴展、可提供總線(xiàn)供電等優(yōu)點(diǎn)。

基于USB接口的諸多優(yōu)點(diǎn)和本設計中巡更機的特點(diǎn),我們在設計巡更系統時(shí),采用了USB接口。該電子巡更系統具有使用方便、數據傳輸速度快、易擴展、充電方便、功耗低、性?xún)r(jià)比高等優(yōu)點(diǎn),有效地解決了傳統巡更機的不足。

圖1 巡更機硬件原理框圖

1 電子巡更系統硬件設計

針對電子巡更系統的特點(diǎn),為了降低開(kāi)發(fā)成本,提高系統的性?xún)r(jià)比,本設計采用MCU+USB接口芯片的方案。MCU采用Atmel公司的AT89C52單片機,可以設置成低功耗方式。USB接口芯片采用Philips公司的PDIUSBD12。帶USB接口的電子巡更系統硬件原理框圖如圖1所示。其中DS1302為高性能、低功耗、寬電壓、帶有RAM實(shí)時(shí)時(shí)鐘芯片,它適合于工作電池供電設備的系統時(shí)鐘。這里MCU通過(guò)它讀了當前時(shí)間;24LC64為低功耗、寬電壓、64Kb、支持I2C協(xié)議的串行CMOS電可擦除程序存儲器EEPROM,這里用于存儲巡更點(diǎn)信息鈕扣的ID值和讀取信息鈕扣時(shí)間數據。DS1990A外形上是一種圓形不銹鋼器件,內部存有64b的二進(jìn)制代碼,以此代碼作為巡更點(diǎn)的ID值。DS1302和24LC64電壓工作范圍為2.5~5.5V,以I2C總線(xiàn)和MCU通信。DS1990A以單總線(xiàn)(1-Wire總線(xiàn))和MCU通信。

本系統中巡更機采用3.6V可充電電池供電,充電電源由USB接口的5V電源線(xiàn)提供,電源電壓監測電路如圖2所示。其呂AMS1117是一個(gè)DC-DC電壓變換器,其輸入端為USB接口的5個(gè)電源線(xiàn),輸出端為3.3V電壓,以此電壓為3.6V電源充電。MAX9117是一個(gè)帶有1.245V基準電壓(Vref)的比較器。當電池電壓下降到3V以下時(shí),LED點(diǎn)亮,指示電量不足。

PDIUSBD12是一種性能優(yōu)化的USB器件。它是一種與微控制器進(jìn)行通信的高速愛(ài)用并行接口,它同時(shí)也支持本地DMA傳輸。設計人員可以在各種不同類(lèi)型的微控制器中選擇出最合適的微控制器,而且不需要專(zhuān)用的開(kāi)發(fā)設備。這種組件方式增強了系統開(kāi)發(fā)的靈活性,減少了開(kāi)發(fā)時(shí)間、風(fēng)險和費用,是開(kāi)發(fā)USB外設的一種快捷和經(jīng)濟的途徑。PDIUSBD12符合USB1.1規范,也符合大多數在規范,如成像類(lèi)、大容量存儲類(lèi)、通信類(lèi)、打印類(lèi)和人工輸入設備等。因此,PDIUSBD12非常適合數外圍設備,如打印機、掃描儀、外部大容易存儲器(Zip驅動(dòng)器)和數碼相機等的接口芯片。它使得當前使用SCSI的系統可以立即降低成本。

2 電子巡更系統軟件設計

2.1 巡更機固件程序

巡更機固件程序從功能上主要分為兩部分。

①信息鈕扣的讀取操作程序。這一部分實(shí)現MCU主外圍器件的初始化、讀取信息鈕以及對DS1302和24LC64的讀寫(xiě)操作。調試時(shí)要注意I2C總線(xiàn)的時(shí)序問(wèn)題。巡更機固件程序采用C語(yǔ)言編程。信息鈕讀取操作程序流程如圖3所示。

②MCU和USB接口的通信程序。這一部分程序要實(shí)現將24LC64中的數據經(jīng)USB接口讀入到上位計算機中。USB接口芯片PDIUSBD12的端點(diǎn)適用于不同類(lèi)型的設備,可通過(guò)命令配置為4種不同的模式:模式0(非同步傳輸)、模式1(同步輸出傳輸)、模式2(同步輸入傳輸)和模式3(同步輸入輸出傳輸)。PDIUSBD12帶有三個(gè)端點(diǎn),即端點(diǎn)0、端點(diǎn)1和端點(diǎn)2。這里僅列出模式0(非同步傳輸)時(shí)各端點(diǎn)的配置表格,如表1所列。

表1 模式0各端點(diǎn)配置

端點(diǎn)號端點(diǎn)索引傳輸類(lèi)型端點(diǎn)類(lèi)型方向

最大數據包容量/B

00
1
控制輸出
控制輸入
缺少值輸出
輸入
16
16
12
3
普通輸出
普通輸入
普通
普通
輸出
輸入
16
16
24
5
普通輸出
普通輸入
普通
普通
輸出
輸入
642(雙緩沖區)
642(雙緩沖區)

本程序設計時(shí),使用PDIUSBD12的端點(diǎn)1和端點(diǎn)2進(jìn)行上位計算機與巡更機MCU之間的命令和數據的傳輸。端點(diǎn)1和端點(diǎn)2設置成模式0,其中端點(diǎn)1進(jìn)行命令的傳輸和應答,端點(diǎn)2用于數據的傳輸。端點(diǎn)1接收上位計算機發(fā)送過(guò)來(lái)的8字節的讀指令,指令正確回應后,使用端點(diǎn)2返回讀成功數據。通信中所使用的端點(diǎn)情況如圖4所示(括號內為使用的端點(diǎn)號)。

PDIUSBD12收到上位計算機的數據包時(shí),就以中斷的方式通知巡更機的MCU。固件程序工作過(guò)程如下:當PDIUSBD12從USB收到一個(gè)數據包時(shí),PDIUSBD12就會(huì )對MCU產(chǎn)生中斷請求,MCU立即響應中斷。巡更機固件程序將數據包從PDIUSBD12內部緩沖區移到數據緩沖區,并清零PDIUSBD12的內部緩沖區,以使之能接收新的數據包。在斷處理程序中,MCU判斷產(chǎn)生的中斷類(lèi)型,并進(jìn)行相應的處理。其中斷程序流程如圖5所示。

2.2 巡更機驅動(dòng)程序

Windows98和Windows2000已經(jīng)為一些USB標準設備提供了驅動(dòng)程序,巡更機目前還不是標準的計算機外設,所以必須針對巡更機的特點(diǎn)來(lái)編寫(xiě)驅動(dòng)程序。本設計中巡更機驅動(dòng)程序是通過(guò)Windows DDK來(lái)開(kāi)發(fā)的,它是Microsoft公司提供的一個(gè)開(kāi)發(fā)Windows驅動(dòng)程序的工具,DDK提供了編譯驅動(dòng)程序的環(huán)境。該巡更機的驅動(dòng)程序是WDM類(lèi)型的,采用VC++編程。

驅動(dòng)程序中對USB進(jìn)行操作的請求都應調用系統例程,將其轉化為一個(gè)URB結構,即USB請求塊(USB Request Block),然后使用系統級的IRP將其提交。該驅動(dòng)程序由四個(gè)模塊組成:初始化模塊、即插即用管理模塊、電源管理模塊和I/O控制模塊。

①初始化模塊。DriverEntry為驅動(dòng)程序的入口處,通過(guò)它來(lái)執行大量的初始化函數。

②即插即用管理模塊實(shí)現設備的熱插拔和動(dòng)態(tài)配置。驅動(dòng)程序初始化完成后,接著(zhù)對設備進(jìn)行初始化,這主要是通過(guò)即插即用(PnP)管理器調用驅動(dòng)程序中的AddDevice和IRP_MJ_PNP兩個(gè)例程來(lái)完成的。當驅動(dòng)程序從PnP管理器中收到IRP_MN_START_DEVICE請求時(shí),驅動(dòng)程序啟動(dòng)設備,并且準備好處理I/O操作。

③電源管理模塊負責設備的喚醒和掛起。電源管理器(powermanager)從整個(gè)系統的角度來(lái)管理電源,所有與電源相關(guān)的IRP都是由它發(fā)出的,它發(fā)出的請求包可以指定一種新的電源狀態(tài)以及查詢(xún)或更改一種狀態(tài)。支持電源管理的驅動(dòng)程序,在最大程序地幫助Windows合理地利用資源方面起著(zhù)重要作用。值得注意的是,與電源相關(guān)的IRP必須在同步操作上有非常嚴格的要求。例如,任何時(shí)候在一個(gè)PDO(物理設備對象)中。只能有一個(gè)IRP_MN_QUERY_POWER或者IRP_MN_SET_POWER;電源IRP的處理要盡可能地快等。

④I/O控制模塊完成輸入輸出請求的大部分功能。設備的控制由設備控制例程(IRP_MJ_DEVICE_CONTROL)負責,主要是對設備進(jìn)行一些操作命令的發(fā)送或者標志的讀取。數據讀寫(xiě)主要由IRP_MJ_READ和IRP_MJ_WRITE兩個(gè)例程完成,只需在A(yíng)ddDevice中申請一個(gè)符號鏈接,并且在StartDevice中將此符號鏈接激活即可。

2.3 應用程序設計

在Win32系統中,每一個(gè)設備對象都抽象為文件,此時(shí)的應用程序只需通過(guò)幾條簡(jiǎn)單的文件操作API函數,就可以實(shí)現與驅動(dòng)程序中某個(gè)設備的通信。在本設計中,應用程序是該電子巡更系統的中心,采用Visual C++編程。其主要功能有:?jiǎn)?dòng)或關(guān)閉USB設備、檢查USB設備、設置巡更參數、從巡更機中讀取數據以及顯示、比較、存儲數據等。

結語(yǔ)

USB接口因其具有諸多優(yōu)點(diǎn),近年來(lái)為計算機外設的開(kāi)發(fā)熱點(diǎn),尤其是USB2.0標準的推出,其傳輸速率可達480Mb/s,使其真正意義上成為了一種通用串行總線(xiàn)。而根據筆者的實(shí)際開(kāi)發(fā)經(jīng)驗,Philips公司的PDIUSBD12是一種性能優(yōu)良、經(jīng)濟、實(shí)用、高效的USB接口器件,很適合投資少、周期短的開(kāi)發(fā)項目,而且可以根據自己的實(shí)際情況靈活地選擇組件,相信其在各領(lǐng)域必有廣闊的應用前景。



關(guān)鍵詞: USB 接口 電子巡更系統

評論


相關(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>