一種智能多協(xié)議通信適配器的設計
當選擇從智能終端采集數據時(shí),單片機通過(guò)順序查詢(xún)上述儲存的搜索結果,得到終端的類(lèi)型。然后,根據不同的終端調用相應的協(xié)議,發(fā)出采集數據的指令。適配器上的CPU與下位機之間是一對多的通信模式,默認狀態(tài)下,采用循環(huán)采集,各終端有一預先指定的固定的通信地址。對一個(gè)固定的終端而言,CPU發(fā)出握手信號,遠方終端響應,則相應的信息經(jīng)RS232/RS485接收,由CPU存入RAM62256的指定地址;接收完成后,CPU將接收到的數據經(jīng)D12傳給上位機;上位機的客戶(hù)服務(wù)程序對上傳上來(lái)的數據進(jìn)行解碼、校驗,如有誤,通知終端重傳;如無(wú)誤,則將解碼后的信息轉存入計算機指定的內存,并備份到相應的文檔,供其他的客戶(hù)服務(wù)程序使用。根據系統的特點(diǎn),還可以采用定點(diǎn)采集方式對指定終端進(jìn)行數據采集與監控。以下給出單片機主程序流程圖(圖2)。
圖2:微控制器主程序流程圖
3.2 上位機的程序設計
從上位機來(lái)看,適配器為它的一個(gè)USB外設。因此上位機必須提供USB外設的驅動(dòng)程序。上位機的管理軟件包括客戶(hù)服務(wù)程序以及USB驅動(dòng)程序。
客戶(hù)服務(wù)程序(Client software)是駐留在上位機的與USB系統軟件交互作用的軟件。它確定需要與功能(即USB外設)進(jìn)行什么樣的傳輸,當它需要與功能進(jìn)行傳輸時(shí),提出一個(gè)請求,并生成一個(gè)IRP(I/O中斷請求包),然后進(jìn)行USBD(USB Driver)調用,把IRP通過(guò)USBD接口傳送給USBD。當該傳輸請求被服務(wù)后,客戶(hù)服務(wù)軟件接收IRP完成狀態(tài)的通知。如果該傳輸涉及功能到主機的數據傳輸,則客戶(hù)服務(wù)軟件可以訪(fǎng)問(wèn)與該IRP有關(guān)的數據緩沖區中的數據。
USB驅動(dòng)程序(USBD)是駐留在上位機的為客戶(hù)提供通用服務(wù)的軟件實(shí)體,它管理主控制器上的一個(gè)或多個(gè)功能。它通過(guò)調用適當的主控制器驅動(dòng)程序(HCD)將用戶(hù)IRP中的數據轉化為設備端點(diǎn)的數據,或通過(guò)回調適當的HCD將設備端點(diǎn)的數據轉化為客戶(hù)IRP中的數據。USBD接收來(lái)自配置軟件的配置請求,該配置軟件是駐留在上位機上的負責配置USB設備的軟件,它描述所希望的設備配置:端點(diǎn)、傳輸類(lèi)型、傳輸周期、數據規模等。USBD基于帶寬有效性以及總線(xiàn)容納該請求類(lèi)型的能力,接受或拒絕配置請求。如果它接受了一個(gè)請求,則USBD為所希望類(lèi)型的請求者創(chuàng )建一個(gè)管道。一旦設備被配置,軟件客戶(hù)可以請求IRP在它與其功能端點(diǎn)之間進(jìn)行數據傳送。
主控制器驅動(dòng)程序(HCD)是從主控制器中抽象出來(lái)的USB軟件層,它提供了一個(gè)SPI(系統編程接口)與主控制器交互作用,并隱藏了主控制器的硬件實(shí)現細節。當用管道傳送IRP時(shí),HCD把它們添加到事務(wù)表中。當一個(gè)IRP完成時(shí),HCD會(huì )通知發(fā)出該請求的軟件客戶(hù)IRP已經(jīng)完成。如果IRP包括從功能到軟件客戶(hù)的數據傳送時(shí),則把數據放在客戶(hù)指定的數據緩沖區。
USB驅動(dòng)程序的編寫(xiě)往往是USB設備開(kāi)發(fā)過(guò)程中最困難的,通常采用Windows DDK來(lái)實(shí)現。目前有許多軟件廠(chǎng)商提供各種各樣的驅動(dòng)程序生成工具,如Computerware的DriverStudio,BlueWaters的DriverWizard等。本設計中筆者就是采用DriverStudio軟件生成的程序框架,添加了適當的用戶(hù)代碼,完成了適合與本設計的驅動(dòng)程序的編寫(xiě)。
上位機的客戶(hù)服務(wù)程序是用VC++6.0編寫(xiě)的,協(xié)議轉換是根據智能終端與協(xié)議識別所形成的終端信息表調用相應的協(xié)議轉換程序來(lái)實(shí)現的。用戶(hù)可以很方便的擴展用戶(hù)所需的協(xié)議。
4 結語(yǔ)
USB由于其連接的方便性、通信速度的快速性、接口的簡(jiǎn)單性,必將在計算機技術(shù)應用領(lǐng)域得到廣泛的應用。本文提出的智能多協(xié)議通信適配器可以廣泛地應用于實(shí)時(shí)監控、實(shí)時(shí)數據采集等場(chǎng)合,也可以增強協(xié)議辨識和增加協(xié)議轉換功能,使它能自適應地應用于與具有標準通信協(xié)議和規范化的數據格式而又缺少詳細技術(shù)資料的智能終端通信中。
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
光電開(kāi)關(guān)相關(guān)文章:光電開(kāi)關(guān)原理 上拉電阻相關(guān)文章:上拉電阻原理 雙控開(kāi)關(guān)相關(guān)文章:雙控開(kāi)關(guān)原理
評論