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