時間:2022-06-29 00:17:13
序論:在您撰寫接口設計論文時,參考他人的優秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發您的創作熱情,引導您走向新的創作高度。
1)燃氣爐、電阻爐上位機控制系統升級。對鑄鐵、鑄鋼、鍛壓三個分廠的60臺燃氣爐、64臺電阻爐共計124臺爐窯進行改造,添加實時數據接口。此項內容時間緊、爐窯設備多、調試難度大(軟件新、工控機老、調試過程設備問題復雜)。在軟件調試過程中,對DCOM配置問題比較突出,因為現場工控機操作系統版本有WIN2000SP1~4、WINXPSP1~3等多個版本,在同版本中,有些系統的默認設置也不盡相同,所以在設置時有些工控機通過簡單設置就可以,但是有些工控機卻不能通訊。經過上網查閱大量的文檔、說明,并結合現場測試結果才找到了幾個重點的系統設置服務參數項:①配置服務器和客戶機相同的用戶名和密碼。②關閉網絡防火墻,設置相同的IP段,設置ICMP允許傳入回顯請求。③在本地安全策略中,本地帳戶的共享和安全模式設置為經典;讓每個人權限限于匿名用戶啟用。④在組件服務中,設置默認權限、OPCEnum、服務器程序相應的權限。2)對鍛壓分廠的壓機設備、碾環機設備、電力能源設備和鑄鋼的鋼水測溫系統、軋輥冷卻測溫系統、噴淬機、淬火油池等設備以及鑄鐵的電阻爐群電力平衡系統進行了軟件開發或軟件升級改造,使其具備相關控制功能并具有OPC實時數據接口功能。
2OPC數據接口
(1)主要采用OPCServer嵌入控制軟件或單獨調用OPCServer程序。程序代碼(略)。(2)燃氣爐加載OPC接口數據見表1,電阻爐、離心機等設備的數據接口類似。
3應用效果
在電阻爐群控軟件中,對每臺爐窯添加多功能電量表,對每臺爐的用電情況(三相電壓、三相電流、瞬時功率、累計電量)進行實時監控,并對每爐次的用電量進行統計。為此,電阻爐的實時上傳數據為:爐次,爐內各控制偶溫度,爐內各監測偶溫度,工件上各鎧裝偶溫度,各區設定溫度,各區輸出功率,設定工藝參數,工藝運行參數,設備報警信息,電量信息等。在燃氣爐群控軟件中,對沒有煤氣流量計的爐窯添加了流量計,對每臺爐的煤氣用量情況(瞬時流量、累計流量)進行實時監控,并對每爐次的煤氣用量進行統計。為此,燃氣爐的實時上傳數據為:爐次,爐內各控制偶溫度,爐內各監測偶溫度,工件上各鎧裝偶溫度,各區設定溫度,各區輸出功率、設定工藝參數,工藝運行參數,煤氣壓力,助燃風壓力,爐膛壓力,設備報警信息,每支燒嘴控制大小火情況,每支燒嘴大小火信息,煤氣消耗量信息等。通過以上實時數據的統計、分析和傳遞,在生產管理和設備管理等方面可達到以下效果:(1)生產調度方面。生產管理者可以快速了解各熱處理設備的使用及運行情況,可以優化設備的使用率和生產工藝流程的順暢。(2)能源調度調配方面。能源管理者可以快速了解設備的能源消耗情況,并可對能源消耗費用進行控制(對于電阻爐,可以實現錯峰用電,實現能源成本的節約),對整個廠內耗能的熱處理設備實現監控與調配,防止供電負荷變化過大和煤氣消耗量不穩。(3)設備管理方面。設備管理人員可對爐窯設備進行實時監控,對存在的設備隱患和問題及時發現并處理,設備維修保養更快捷,設備運行更順暢。(4)成品管理及質量跟蹤方面。對出現問題的工件可以查看其在鍛造加熱和熱處理工藝過程中各種工藝參數和溫度參數,追溯到存在問題的環節。(5)安全管理方面。對于容易出現安全問題的設備進行實時監控,及時發現安全隱患并消除,防止安全事故的發生。對于發生安全事故的設備,通過查看其報警記錄及其它相關參數,方便查找事故原因,并進一步針對事故原因進行分析解決。(6)成本管理方面。通過對爐窯設備的實時數據記錄,可計算單支產品在加熱鍛造和熱處理工藝流程中的能源消耗,實現單支產品的成本統計分析。(7)通過個人辦公室全過程信息化聯網計算機可以查看任何一個產品當前所在的生產流程位置、狀態、已消耗費用等,另外設備總體使用率,各產品生產周期和生產成本等也一目了然。從而可根據生產數據信息化分析處理系統了解是否滿足市場及客戶需求,企業內部的運行效率如何,優化內部管理,企業系統如何有效的適應外部的變化。為企業發展管理決策提供第一手參考資料和依據。
4結語
1.1接口描述當傳感器網絡的Zigbee網關節點不斷地將網絡節點中監測到的溫度、煙霧等信息發送給上位機時,上位機的通信模塊必須及時響應接收數據。數據監測上位機通信接口采用VB6.0中MSComm控件,利用串行端口傳輸和接收數據,為應用程序提供串行通信功能,具體包括2種處理通訊方式,一種是事件驅動通訊,利用OnComm捕獲并處理通訊時間;另一種是通過檢查CommEvent的值,來查詢事件和錯誤[5]。設計中采用第1種方式,在用戶界面設置好相應的控制參數,如波特率為38400bps、無校驗位、8數據位、1位停止位等。當傳感器網絡節點監測的的溫度、煙霧等信息發送給上位機時,將觸發監測程序中MSComm控件的OnComm事件,進而改變ComEvent的值,程序根據ComEvent的值執行相應的操作,如解析數據、發送數據、錯誤分析等,然后更新內存節點樹中當前節點的實時數據、采集信息(如溫度、煙霧等)存入數據庫。
1.2實現方法MSComm控件可以設置以二進制或者以文本方式接收,若設置為二進制接受,控件會自動將其轉變成十進制。在該系統中,數據幀的數據是十六進制的,設置以二進制方式進行接收,從接收緩存中獲取到的是十進制的數據。
2數據結構與數據解析
2.1內存中節點多叉樹的建立圖2節點數據結構圖通信監測模塊接收數據后,為了便于以圖形方式實時顯示網絡拓撲和節點監測信息,以及提高查詢數據的運行速度,需要在內存中構建一個動態多叉樹,用于存儲節點最新的數據信息。節點數據結構圖如圖2所示。在內存中建立一個關于節點的動態多叉樹,節點的唯一標識是它的自身ID,根據數據幀中包含的父子關系可構建出一棵多叉樹。首先定義一個名為treeNode的類,它的每一個實例都代表著一個節點,里面包含節點的屬性(例如ID、溫度、煙霧等)和方法(例如獲取類中節點數據的getData方法)。為了將節點間的父子關系表現出來,可在類treeNode中定義一個類型為treeNode的動態數組NodeChild(),用于存放子節點。如某節點ID為0000,子節點ID為0001,將子節點0001存放在節點0000的NodeChild()數組中,即可完成節點間的連接。當需要找某個節點時,從根節點開始查找,若根節點的孩子沒有要找的節點,則查找根節點的孩子的孩子,直到遍歷完所有節點。當某數據幀發送到上位機時,解析出來的原始數據分別放在相應的變量,假設原始的溫度數據是3F4A,數據結構中溫度變量名為Temperature,類型為String,則直接將3F4A轉換為String類型存在Temperature中。按上述方法構建的動態多叉樹能夠適應網絡拓撲動態變化的應用場景,相比于定長的數組,其更為節省內存,不足之處是查詢算法較復雜。
2.2數據解析通信監測模塊接收到Zigbee網關節點發送來的一組數據(數據幀)后,需要對收到的數據進行協議解析,然后根據解析數據建立當前動態多叉樹。由于通信中難以避免數據幀出錯、截斷、丟失等情況,故數據解析部分根據數據幀的格式制定了一套協議,丟棄異常數據幀。數據幀的部分格式如下:FFXXXXXXXXFF01XXXX02XXXX2FF之間,開頭2個字節為節點ID,緊跟的2個字節節點的父ID01代表溫度類型,后面2個字節是溫度數值02代表煙霧類型,后面2個字節是煙霧值,依次類推…。2個FF后的字節都是數據,其格式如下:數據類型(01,溫度類型)+2個字節的數據(XXXX)。具體操作流程如圖3所示。首先檢驗從串口進來的數據幀開頭一個字節是否FF,若是,則開始解析。直到下一個FF,則節點ID部分解析結束,后面都是數據。繼續讀取下一個字節,若為01,則將后面緊跟的兩個字節存進相應的溫度變量,讀取下一個字符;若該字節所表示的數據類型未定義則跳過該字節及后面緊跟的兩個字節,繼續讀取下一個字符。該過程一直執行直到解析完整個數據幀。由于數據幀是不定長的,而且沒有結束字符,所以每收到一個數據幀程序便立即從緩存中讀取并解析,以避免多個幀合并為一個數據幀導致解析錯誤。當出現多個數據幀并合情況時,則丟棄后繼的幀。在幀解析完畢后,可以對解析出來的監測數據信息進行處理,將數據信息一份存進內存中節點多叉樹,一份存進數據庫,實現實時更新數據和記錄當前信息。以下是有關串口通信事件響應及數據解析的部分代碼:
3數據庫的構建與連接
3.1數據庫關系數據庫關系圖如圖4所示。由于每個節點都有大量歷史數據,所以每一個節點都創建一個表;USERS表用于保存監測系統的用戶信息;NodeTran用于保存數據幀轉發路徑;Nodelist用于保存節點列表;Limit用于保存監測系統的閾值管理設置值;Node_XXXX為節點XXXX的歷史數據表。除了用戶表,所有數據都采用varchar類型。
3.2存儲過程的創建為了提高通信監測模塊與數據庫之間通信的效率,將一些常用且較為復雜的SQL語句存放在數據庫中,使用時只需要調用存儲過程,輸入必要的參數即可完成相應的SQL語句操作,這樣可以大大減少程序與數據庫之間的通信量。
3.3使用ADO將VB6.0與SQL2005連接ADO是為Microsoft最新和最強大的數據訪問范例OLEDB而設計的,擁有一個易于使用的應用程序層接口。通過使用ADO2.0對象模型中的Recordset和Connection對象實現兩者連接和數據的存取。Connection對象包含關于某個數據提供程序的信息,如數據庫用戶、密碼、數據庫名等;Recordset對象包含某個查詢返回的記錄,可以創建一個Connection對象,在同一個連接上打開多個Recordset對象[8]。操作流程圖如圖5所示。
4結語
本設計采用了Xilinx公司提供的ISE為開發平臺。ISE軟件是Xilinx公司推出的FPGA/CPLD集成開發環境,不僅包含了邏輯設計所需的一切,還具有大量的簡便易用的內置式工具和向導,使得I/O分配、功耗分析、時序驅動設計收斂、HDL仿真等關鍵步驟變得容易而直觀。因此要掌握XilinxFPGA開發,就必須掌握ISE。ISE界面友好、操作簡單、集成度高。利用ISE進行FPGA邏輯設計的主要流程包括設計輸入、功能仿真、設計綜合、設計實現和配置下載,簡易設計流程圖如圖1所示。
2ISA總線邏輯接口設計
ISA總線:(IndustryStandardArchitecture:工業標準體系結構)是IBM公司為PC/AT電腦而制定的總線標準,也稱為AT標準,為8/16位體系結構,最高工作頻率為8MHz,數據傳輸率大約是16MB/S,地址線24條,可尋訪16M字節地址單元。由于本文使ISA總線工作在8位I/O傳輸模式,使用了ISA總線信號中的時鐘線(ISA_CLK)、地址線(ISA_ADDR):A0~A9、數據線(ISA_DATA):D0~D7、讀信號線(ISA_IOR)、寫信號線(ISA_IOW)、地址鎖存使能(ISA_ALE)、地址選通信號(ISA_AEN)等。本設計采用了與C語言較為相似的VERILOGHDL硬件描述語言對ISA總線邏輯接口進行了描述。
本文要實現的是ISA接口通過FPGA訪問串口芯片16C554,16C554是內部帶有16字節收發FIFO的通用異步收發器,具有獨立的收發控制電路。4路標準的MODEM接口,通過軟件可分別設置允許每一路中斷。波特率、數據幀格式等也都可由軟件編程設置。具體硬件結構如圖。由圖2可知上位機通過ISA總線對串口芯片16C554串口芯片的訪問需要FPGA作為橋接媒介,因此串口芯片的控制信號均由FPGA給出,其邏輯控制信號的VERILOG描述如下。當上位機對串口芯片進行讀寫時,首先需要通過FPGA將ISA地址信號譯碼為芯片的片選信號,設置串口芯片基地址為0x300,由于9位地址線的低三位為串口芯片的內部地址,因此芯片的片選信號由地址總線的高七位決定。
3結束語
為了驗證基于FPGA的ISA邏輯接口的正確性,將上述邏輯接口利用VERILOG硬件描述語言在賽靈思提供的集成開發環境ISE中實現。
CY7C68013A固件程序是指在EZ⁃USB芯片內部RAM中運行的程序代碼,固件程序是USB接口設計的核心部分。固件代碼的作用就是控制芯片執行指定的設備功能,即處理上位機下傳的各種USB設備請求,控制芯片與電路進行數據傳輸。EZ⁃USB芯片內部集成增強型8051內核,USB芯片的固件程序實際上就是單片機程序文件,可以采用匯編語言或C語言編寫。CYPRESS公司提供的EZ⁃USBFX2固件程序開發包中提供了固件程序的基本框架,這為用戶開發基于EZ⁃USBFX2芯片的USB設備提供了很大的方便。
1.1固件框架固件程序框架主要包括設備初始化,處理標準USB設備請求和USB掛起時的電源管理等。程序框架使用KeilC51編寫,它是現成的直接可以編譯為HEX文件的8051程序代碼,使用者只需要改寫USB描述表,在一些固定函數下添加功能代碼,主要是EZ⁃USB芯片的初始化配置和實現USB外設功能的代碼。固件框架的流程圖如圖2所示[4]。復位后固件先初始化一些全局變量,然后調用初始化函數TD_Init(),該函數初始化USB設備到沒有配置的狀態,并打開中斷。循環1s進行一次設備重枚舉,直到端點0收到一SETUP包,然后進入while循環語句,開始TD_Poll任務處理函數。依次執行下列過程:(1)TD_Poll()用戶任務調度函數;(2)如果發現USB設備請求,則分析該請求并執行;(3)如果收到USB掛起信號,則調用TD_Suspend()掛起函數,內核掛起,直到出現USB遠程喚醒信號,調用TD_Resume(),內核喚醒,從新進入while循環。固件框架包含的文件如表1所示。
1.2固件代碼編寫USB固件程序主要的功能有2個:一是PC機的Windows系統能夠檢測與識別相應設備;二是數據的上傳與下傳。Cypress公司為EZ⁃USBFX2系列芯片提供的固件程序框架極大的簡化了固件開發。一般的固件開發只需要修改用戶調度函數文件Periph.c與USB描述符列表文件Dscr.a51,這兩個文件在KeilC51編程器中都可打開。Periph.c文件中只需要修改TD_Init()與TD_Poll()函數。在本設計中為了能進行高速的數據傳輸,EZ⁃USB芯片采用SlaveFIFO接口方式。此方式下,USB內核不參與數據的傳輸,所以TD_Poll()函數不用寫代碼,設置成空函數就可以了。這樣USB固件程序的開發主要任務就是改寫TD_Init()函數與USB描述符列表文件Dscr.a51。在本設計中配置端點6傳輸方向為IN,傳輸方式為塊傳輸,緩沖大小設置為1024B,深度為2級,作用是上傳采集的數據。配置端點2傳輸方向為OUT,傳輸方式為塊傳輸,緩沖大小設置為1024B,深度為2級,作用是下傳FPGA的命令配置參數。固件程序的編譯使用KeilμVision2集成編譯環境,集成編譯環境中包括有C51編譯器,A51匯編器等工具與調試器。代碼中還需包含頭文件FX2.h與Fx2regs.h,庫文件Ezusb.lib。對修改后的代碼進行編譯與鏈接,最后生成HEX文件。HEX文件可直接下載到EZ⁃USB中運行。HEX文件也可根據需要通過CYPRESS公司提供的EZ⁃USBFX2固件開發包中的Hex2bit.exe應用工具生成IIC文件,IIC文件用于燒寫到EEPROM中。
2固件程序的裝載
CY7C68013A芯片集成增強型8051內核,內部無ROM等永久性存儲器,每次上電后需要從新將固件程序載入到片內RAM中。EZ⁃USBFX2固件程序有3種加載方式:(1)如果沒有片外存儲器連接到EZ⁃USBFX2上,或者所讀取的首字節不是0xC0或0xC2,則芯片枚舉為缺省的USB設備,其中描述符,VID,PID由芯片內部硬件邏輯提供。然后固件程序與描述符表由主機下載,EZ⁃USBFX2開始執行下載的代碼,首先模擬物理電路的斷開與連接,此時EZ⁃USBFX2將再次進行設備枚舉,這稱為重枚舉,重枚舉將根據下載的代碼對設備進行從新定義。(2)如果USB檢測到一個E2PROM,其首字節為0xC0時,芯片也枚舉為缺省的USB設備,但VID與PID值將從此EEPROM中讀取,USB描述符由芯片內部提供。這種模式稱為“C0”加載。主機根據讀得的VID與PID值,由固件下載驅動程序將指定的固件程序下載到EZ⁃USBFX2,然后再重枚舉。(3)如果USB檢測到一個E2PROM,其首字節為0xC2時,固件程序將從此E2PROM中自動下載到FX2芯片上,CPU通過復位后運行下載的程序代碼。這種模式稱為“C2”加載。其中第一種方式主要是開發階段使用,它需要主機上有CYPRESS公司提供的開發軟件USBCONTROLPANEL,每次手動將程序下載到USB上。第二種方法需要開發者另外再編寫一個固件下載驅動程序,而且也需要在電路中外加一小容量的E2PROM。第3種方法是將固件程序燒寫到E2PROM中,每次上電自動加載,這種方式簡單直接。本設計采用第3種方式。
3驅動程序及INF文件的編寫
設備驅動程序是應用程序和硬件之間的連接,應用程序通過驅動程序與設備通信,數據交換,從而獲取數據和對設備進行控制。CYPRESS公司為EZ⁃USBFX2提供一通用的驅動程序CYUSB.SYS,其功能完備,使用者不需要修改直接使用[5]。USB設備都具有一個VID和PID,此處的VID和PID與在固件程序轉載階段的值不同,這兩個值是用來安裝設備驅動程序的,VID和PID放到設備描述符表中,通過設備請求讀入到Windows系統中。同時,Win⁃dows操作系統通過INF文件將一VID和PID綁定到某一設備驅動程序。當設備連接到主機上時,讀得設備的VID和PID,通過存儲在INF文件中的信息找到設備驅動。此后,Windows會將設備的VID和PID值保存到注冊表,設備再次連接時,系統就會在注冊表中查找設備驅動程序信息。具體操作方法是將驅動安裝的模板INF文件的MODEL節中的VID與PID值修改成與USB設備的VID和PID值相同。相應STRING節中也修改。
4與應用程序的接口
圖3是驅動程序流程圖,從圖中可以看到功能驅動程序的位置。用戶通過一種規范的方式調用WIN32API函數來訪問硬件,不用考慮如何控制硬件的具體細節。USB開發過程主要應知道應用程序調用驅動程序的接口函數,如下介紹,應用程序直接調用這些函數來實現與硬件設備的數據交換。CREATEFILE通過設備名打開設備,獲得設備句柄,有設備句柄就可以讀寫設備。通過下面語句獲得設備句柄。DEVICEIOCONTROL讀寫控制設備,應用程序調用此函數并加以不同的I/O控制碼參數,完成應用程序與驅動程序將的數據交換。主要用到的I/O控制碼有:IOCTL_EZUSB_BULK_READ該控制碼從指定的批量管道中讀取數據。讀操作阻塞調用進程,直到數據傳送完成。IOCTL_EZUSB_BULK_WRITE該控制碼向指定的批量管道中寫入數據。寫操作阻塞調用進程,直到數據傳送完成。CLOSEHANDLE通過句柄關閉設備,設備請求完成后通過此函數關閉。
5結語
從結構上,檢測接口可以分為DAC單元、濾波放大單元、二線接口單元、混合單元、信號調理單元、ADC單元和FPGA系統單元。
1.1DAC與濾波放大單元DAC與濾波放大單元用于將數字信號轉換為模擬信號,并完成對信號的調理、幅度調節與功率放大功能。其硬件電路如圖2所示。該單元由3部分電路組成,分別是DAC芯片電路、無源濾波電路和差分放大電路。DAC芯片為ADI公司生產的高性能、低功耗CMOS數模轉換芯片AD9762,AD9762為12位分辨率,支持最高125MS/s的更新速率。該芯片使用5V、3.3V可選單電源供電,最高功耗175mW,2mA~20mA差分電流輸出,負載RLOAD為100Ω時輸出電壓范圍為0.2V~2V[2]。FSADJ引腳連接外接電阻RSET,用于滿量程電流輸出調節。REFIO引腳用于基準電壓VRFE輸入/輸出,選擇內部1.2V基準電源時通過一個0.1μF電容與模擬地連接。其差分輸出電壓VDOUT與輸入的12位數字代碼(DCODE)的關系式為。無源濾波電路由電感與電容組成截止頻率為20MHz的7階巴特沃斯低通濾波器,用于信號整形和消除毛刺干擾。差分放大電路以全差分放大器AD8476為核心組成,用于將通過無源濾波電路的模擬差分信號進行增益調節和功率放大。AD8476是一款功耗極低的全差分精密放大器,其帶寬為6MHz,使用±5V電源供電時的輸出電壓范圍為-4.845V~4.82V[3]。檢測激勵信號的峰峰值為4.3V和6.2V,而DAC的輸出峰峰值電壓為2V,因而差分放大電路的增益應當大于3.1,這樣才能使得激勵生成通道的輸出信號幅值符合檢測需求。考慮到DAC的轉換效率和可能存在的誤差,可設計差分放大電路具有兩個略大于滿幅度輸出的增益值。圖2中使用外部擴展電阻R1~R6組成反饋電阻網絡,其中R1=R2=10kΩ為輸入電阻,R3=R6=24kΩ、R4=R5=33kΩ為兩組反饋電阻。該電路的增益值分別為A1=R3/R1=2.4,A2=R4/R1=3.3。為了提高檢測接口的自動化程度,使用1個2路2:1電子開關ADG736用于兩組反饋電阻的切換,通過改變其控制端IN1和IN2的電平邏輯,完成開關動作。ADG736使用5V供電時,導通電阻RON為2.5Ω,帶寬大于200MHz,通過峰值電壓為5V。
1.2二線接口與混合電路單元二線接口與混合電路單元用于為信號激勵與數據采集提供對外二線接口和實現收發信號的雙工傳輸。其硬件電路如圖3所示。二線接口電路由電壓比為1的變壓器以及電阻RS1、RS2和電容C9、C10組成,用于提供檢測電路對外的二線接口,實現接收與發送信號的傳輸,同時可以隔離外部直流信號。RS1、RS2用于與線路負載阻抗匹配并隔離遠端反射和提供線路的能量交換,電容C9、C10用于配合組成激勵發送端擴展濾波電路。混合單元的功能是一階模擬回波抵消,用于抵消本地發送信號。圖2中R7~R10為輸入電阻,同時與C3~C8組成一階低通濾波器。兩個儀表放大器AD8429用于將二線平衡信號轉換為單端信號。AD8429為低噪聲、高精度儀表放大器,其增益為1時增益精度為0.02%、CMRR為80dB、帶寬為15MHz,使用±12V電源供電時其輸出電壓范圍為-10.1V~10.7V,使用單個增益控制電阻RG能夠控制其增益范圍為1~1000,其增益控制關系為G=1+6kΩ/RG[4]。LT6600-10將一個全差分放大器與一個近似切比雪夫(Chebyshev)頻率響應的四階10MHz低通濾波器集成在一起。芯片為低噪聲全差分輸入/輸出放大器,內部集成兩個運算放大器、電阻電容網絡,組成1倍增益放大電路和一個10MHz低通濾波器,使用±5V電源供電時其輸出電壓范圍可達到±5V。若線路電阻RS與負載電阻RL完全匹配,則第二個AD8429的增益值為2時,混合電路的輸出U′3=U3??紤]到阻抗失配現象的普遍存在,因此選擇電位器作為第二個AD8429的增益控制電阻,在線路阻抗失配的條件下,通過調節增益控制電阻來實現混合單元消除近端信號的目的。根據前文所述,可以得到混合電路輸出信號U′3與二線輸入信號U3比值跟增益控制電阻RG之間的關系。因此只要知道RG的值,就能夠通過式(5)準確地對通過混合單元造成的輸入信號幅值的線性誤差進行修正。為了提高檢測接口的自動化程度和實現對RG值的實時感知,選擇數字電位計AD5272作為第二個AD8429的增益控制電阻。AD5272為1024位分辨率、1%電阻容差誤差、I2C接口和50-TP存儲器數字變阻器,最大阻值為20kΩ,可使用5V電源供電[6],其阻值調節步長為1.95Ω。
1.3信號調理與ADC單元信號調理與ADC單元用于將混合電路輸出的模擬差分信號轉換為輸入信號并輸入到FPGA,該部分為數據采集的核心單元,其硬件電路如圖4所示。由于被測信號的最高頻率不超過2.048MHz,根據奈奎斯特采樣定理,使用4.096MHz采樣速率進行采樣就能得到信號完整的信息,但是在工程中,通常使用5~10倍速率進行采樣。因此ADC選擇12位、10MS/s采樣速率模/數轉換器AD9220,其為+5V單電源供電,70dB信噪比,86dB無雜散動態范圍,內置片內高性能、低噪聲采樣保持放大器和可編程基準電壓源,并具有滿量程輸出指示功能[7]。使用1V基準電壓時其輸入范圍為2V(峰-峰值)。信號調理電路應當具有抗混疊濾波和信號幅度調節的功能。該電路選擇全差分放大器AD8476組成,考慮到檢測時輸入信號的幅值大于ADC的輸入范圍,因而選擇其輸入電阻為10kΩ,選擇數字電位器AD5272為反饋電阻RF,則其增益值G4=RF/10kΩ,電路的增益值為0.0002~2可調。放大器輸出經過2個100Ω電阻和2個電容組成的低通濾波器后送至ADC。同時,AD8476以ADC的基準電壓VREF為共模參考電壓。
1.4FPGA單元FPGA單元以Xilinx公司的FPGA芯片XC3S400為核心電路組成,其程序存儲芯片為XCF02S,使用40MHz有源晶振,5V電源供電,使用穩壓芯片提供電路所需的3.3V、2.5V和1.2V電源。USB接口作為微處理器常用的外部總線接口,目前已經得到了廣泛的應用[8],因此考慮選用USB2.0接口作為FPGA與上位機之間的數據接口。同時采用JTAG接口用于FPGA和其配置芯片的程序燒寫。關于FPGA電路的設計、開發技術已經較為成熟,本設計相比與其他通用FPGA電路的設計并無獨特之處,因此不再對FPGA單元進行詳細描述。
2FPGA程序設計
在檢測接口電路的設計中,FPGA是檢測接口電路的信息傳輸與控制單元的核心,其可編程配置能力和能夠高速、并行處理數字信號的能力是檢測接口的靈活性和升級性的關鍵。其內部程序使用Xilinx公司的FPGA開發環境ISE進行設計并完成燒寫。程序設計使用模塊化設計思想,其結構示意圖如圖5所示,可以分USB傳輸、管理控制、DAC傳輸、輸出增益控制、混合單元控制、信號調理控制、ADC傳輸控制和增益補償8個模塊。下面就各個模塊的功能分別進行介紹。(1)USB傳輸模塊,用于通過FPGA單元上的USB接口電路實現FPGA芯片與上位機的信息傳輸,具有USB電路的配置功能,并實現標準USB信號封裝、解封裝功能,將接收到的上位機信號解封裝為透明數據傳送到管理控制模塊和DAC傳輸模塊,將管理控制模塊、增益補償模塊輸出信號封裝為標準USB信號通過USB接口電路傳輸到上位機。(2)管理控制模塊,是整個程序的主控單元。該模塊用于接收USB傳輸模塊輸出的控制信號,對其余的通信模塊進行控制,并輸出檢測電路的工作狀態到USB傳輸模塊,最終傳輸到上位機。同時用于控制其余模塊的工作狀態,接收混合單元控制模塊、信號調理控制模塊、ADC傳輸模塊輸出的反饋信息進行工作狀判斷,根據混合單元控制模塊、信號調理控制模塊反饋信息控制增益補償模塊的補償量。(3)DAC傳輸模塊,在管理控制模塊的控制下工作,接收USB傳輸模塊輸出的激勵信號,并將信號轉換為DAC芯片的數據輸入信號,同時為DAC芯片提供轉換時鐘。(4)輸出增益控制模塊,用于在管理控制模塊輸出的控制信號下工作,根據需求通過兩路輸出信號IN1和IN2分別控制差分放大電路的2個電子開關ADG736。(5)混合單元控制模塊,用于在管理控制模塊輸出的控制信號下工作,根據需求通過輸出I2C信號控制混合單元的數字電位計AD5272的阻值,完成信號混合功能,并將AD5272的阻值信息反饋給管理控制單元。(6)信號調理控制模塊,用于在管理控制模塊輸出的控制信號下工作,根據需求通過輸出2路I2C信號控制信號調理電路的2個數字電位計AD5272的阻值,完成信號調理功能,并將2個AD5272的阻值信息反饋給管理控制單元。(7)ADC傳輸模塊,在管理控制模塊的控制下工作,接收DAC芯片輸出的采樣數據,并將數據傳輸到增益補償模塊,同時為ADC芯片提供采樣時鐘。該模塊同時接收ADC輸出的滿量程指示信號和數據輸入指示信號,并傳送給管理控制模塊。(8)增益補償模塊,用于接收來自ADC傳輸模塊的采樣數據和管理控制模塊輸出的增益補償信息,對ADC芯片采樣獲得的信號進行增益補償,實現檢測信號的完整性。
3結論
船舶導航信息系統處理和儲存多種信息,首先,系統需要處理硬件接口遞交的監測信息,并根據上層用戶的需求給予硬件設備相應的反饋;其次,系統需要將處理和合成之后的信息顯示給用戶,同時從用戶的輸入設備中收集用戶的需求并進行處理;最后,系統還需要與GIS、衛星通信系統等模塊進行交互,實現信息的分析和更新。因此,導航信息在系統的流動過程中形成3個閉環,如圖2所示。在硬件信息閉環中,硬件接口產生的信息主要為經緯度、航向、航速等初始信息,并通過硬件設備本身接口輸出該信息。然而,由于不同設備采用不同的標準并由不同的廠商制造,因而其產生的數據格式差異較大,無法被信息接口直接使用,因而需要信息收集與格式化模塊進行數據的格式化。該模塊從硬件接口中收集數據,并根據預先定義的數據結構將數據重新組織,并以一定的格式提交給信息接收接口,在信息接收接口中,則對數據的合法性進行檢驗,同時識別數據的類型,交付給相應的中央處理功能。在用戶信息閉環中,中央處理模塊將處理完畢的信息,按照一定的消息格式,通過信息交付接口輸出給用戶界面,并顯示給終端用戶。因此可以看出,用戶界面的設計需要相應的信息交付接口的支持,同時用戶根據自己的需求,通過用戶界面對導航信息系統進行相應的操作,該請求也通過信息交付接口遞交給中央處理模塊,進行進一步的處理。在外部信息閉環中,中央處理模塊需要借助一些外部系統獲取需要的信息,如通過GIS可以結合數字地圖等平臺,直觀地顯示導航信息,而通過衛星通信網絡,可以將通信功能集成入導航信息平臺中,實現多節點的位置和導航信息交換。在整個過程中,中央處理模塊根據實際的需要向外部系統提交信息請求,并從外部系統中下載相應的信息。需要注意的是,外部系統中采用的消息格式往往有較為明確的標準,因而信息擴展接口必須具備相應的適配機制,支持相應的標準,識別對應格式的數據和消息,并將其轉換為中央處理模塊能夠處理的數據結構。
2信息接口設計
在第2節中,對系統應用的信息接口進行了介紹,并對其功能進行了較為詳細的描述,根據其功能和作用位置的不同,可以將其分為信息接收接口、信息交付接口和信息擴展接口3類。
2.1信息接收接口信息接收接口的主要功能是:接收由硬件提交的信息,并對信息的格式進行檢驗和分類,最終遞交給中央處理模塊。其主要結構和工作流程如圖5所示。如圖5所示,在信息接收接口中,收到的信息首先存儲在消息緩沖中,信息格式模式匹配單元通過預先定義的合法消息格式,對消息緩沖中的信息進行匹配,監測其合法性,當出現異常時,反饋控制單元調度消息緩沖,根據異常消息的來源,向相應的硬件接口做出反饋,進而將異常消息丟棄或封閉/重置相應的硬件接口。合法的消息被送入消息分類單元,該單元維護若干個列表,列表中存儲格式化的消息數據。當中央處理模塊或其他模塊,調用相應的功能時,則通過相應的功能子接口,將對應的數據取出并交給相應的功能。信息接收接口是基礎硬件設施和軟件處理單元之間的橋梁,通過擴展消息格式化的適配功能,能夠有效拓展支持的硬件種類,從而使得系統的功能更加強大。
2.2信息交付接口信息接收接口面向的是底層硬件設備和系統,而信息交付接口面向的是上層的用戶和用戶界面,其功能是:將中央處理模塊處理完畢的數據和信息,按照不同的種類遞交給用戶界面,在用戶界面中進行集成和顯示。其主要結構和工作流程如圖6所示。與信息接收接口的不同之處在于,交付接口擔負了雙向的信息傳遞功能。首先,通過數據調用單元可以將處理完成的數據交付給用戶界面使用,根據類型的不同有圖形化數據、字節化數據、GIS數據等,用戶界面通過調用這些不同種類的數據,即可按照實際需求,合成和顯示出包含豐富內容的導航信息圖示。同時,用戶通過用戶界面對導航信息系統進行控制、設置或調用其需要的單個數據,此時用戶指令被傳遞到用戶指令解釋單元,若用戶指令合法,則通過編譯器對指令進行解釋,產生針對系統每個模塊的具體指令,并通過控制信息產生單元將具體指令轉換為系統模塊能夠識別的具體控制信息。然后利用系統控制接口,對系統的軟件和硬件進行直接的控制或設置等操作。信息交付接口是實現用戶界面的基礎,其并不關心用戶界面如何實現,終端用戶有著怎樣的具體需求,僅僅是提供了一系列標準化的數據交付接口,這樣就可以根據不同類型的船舶和不同的應用場景,設計不同的用戶界面,而不需要受到核心軟件系統的束縛。
2.3信息擴展接口與前2種接口不同,信息擴展接口是向外部開放的接口,通過這個接口,例如衛星通信網、GIS系統、AIS系統等,均可以連接入導航信息系統,為系統提供更加豐富的信息和更加強大的功能。其主要結構和工作流程如圖7所示。信息擴展接口同樣需要擔負數據的雙向傳遞任務,一方面其運行有相應數據交換/傳輸協議的協議棧,如AIS數據傳輸協議棧、VSAT衛星通信協議棧等,以便通過相應系統的接口下載和傳輸消息,同時將接收到的消息轉換為系統能夠識別的數據結構,供中央處理模塊處理。另一方面,系統根據需要,提出相應的信息下載請求,該請求通過請求處理單元,轉換為相應系統的控制和請求指令,封裝為合適的控制消息后,發送給對應的外部系統。信息擴展接口可以通過擴展外部數據交換協議棧來擴展其可以支持的外部系統種類,從而能夠綜合更多的外部信息,豐富導航信息系統的內容。
3仿真與實現
根據以上研究和設計,本文采用軟件實現的方法對導航信息系統進行仿真和模擬。采用的環境是Corei31.8GHz,4G內存,Win764bit,采用Java作為程序開發語言。仿真的重點在于實現各個接口的功能,驗證各個接口工作的有效性和高效性,依托當前較為成熟的中央處理模塊[7],實現對信息的處理和存儲,并使用Java語言開發整個模擬系統,模擬系統界面如圖8所示。通過編寫相應的代碼,模擬各種硬件設備,信息接收接口成功地收集和轉換了不同種類的消息,并通過信息交付接口遞交給用戶界面,從圖8可以看出其成功地實現了信息的收集和顯示。如圖9所示,進行信息設置的測試,通過設計控制面板,設置相應的參數,觀察能否對系統進行有效控制。通過以上實踐證明,在理論上本文所設計的接口能夠發揮相應的功能,實現導航信息的收集、處理和交付等功能,說明了本文提出的方案具有一定的可行性。
4結語
在HTTP上執行遠程方法調用的方法,通過這一機制在線為用戶提供應用服務。SOAP技術基于XML標準,詳細描述了在分布式環境下利用HTTP以可靠安全的方式進行方法調用的機制。利用WebService實現分布式系統,首先需要由服務提供者定義并創建其能夠對外提供的服務組件;其次需要利用WSDL(WebServicesDescriptionLanguage)來描述服務訪問入口和遠程調用接口,并將其到網絡上的UDDI(UNIVERSALDESCRIPTION,DISVOVERYINTEGRATION)注冊中心,服務入口由URL唯一確定,以提供給用戶使用。用戶通過注冊中心找到服務,并根據WSDL文件中規定的遠程過程名和參數格式調用遠程過程。WEB服務接受請求后執行該過程,執行完畢后向用戶返回執行結果。由此可見,WEB服務為用戶和服務提供者提供了系統集成的松散耦合的方式,用戶和服務提供者相互獨立,一端改變不需要通知另一方。此外,WEB服務基于XML的開放協議,能夠被廣泛接受并向前兼容,適于系統之間的相互集成。
2基于HIS系統的CDD集成的接口設計
HIS系統需要支持醫院醫護人員的臨床活動,收集和處理病人的臨床醫療信息,豐富和積累臨床醫學知識,并提供臨床咨詢、輔助診療、輔助臨床決策等功能,提高醫護人員工作效率和診療質量。為達到這一目的,需將CDD中的知識單元有機嵌入到臨床醫療信息中,以期為臨床的疾病、用藥、手術等提供權威準確的知識服務。Webservices接口使用基于XML的消息處理作為基本數據通訊方式,可方便集成異類系統。由于CDD系統有清晰的分層結構和良好的可擴展性及獨立的檢索模塊,利用Webservices安裝HIS系統的需求封裝檢索模塊即可實現CDD與HIS系統的集成。
2.1CDD與HIS系統集成架構CDD與HIS系統集成架構如圖1所示。CDD的數據庫包括疾病、手術等9個模塊,利用NHibernate將關系數據庫封裝為對象。CDD接口對數據的檢索建立在LUCENCE索引上,以疾病庫為例,對疾病名、英文名、標準名、并發癥、實驗室檢查、輔助檢查、診斷、鑒別診斷、治療、臨床表現、科室分類這些字段建立LUCENCE索引。查詢可在上述字段內全文檢索,也可對固定字段精確檢索。LUCENCE[3]對查詢結果做了優化,使得查詢更加快速高效。在Spring.NET的框架中,利用IDAL數據層接口完成對數據層的操作并實現了業務邏輯。Webservice接口利用IDAL接口完成數據的檢索與獲取。
2.2應用分析目前已完成系統接口開發,試用良好。HIS系統可通過配置文件設置CDD系統接口地址及綁定協議等信息。由C#多態性實現用戶名密碼登陸或者IP登陸后,可通過檢索函數獲取檢索結果。用戶通過函數按照疾病名和疾病分類準確查找相關疾病,也可通過SearchDisease(stringicd)函數按照ICD號準確查找相關疾病,亦可通過SearchDiseaseFromFullText(stringkeyword)函數在索引字段中全文檢索,檢索支持英文及中文檢索詞。需輸入多個檢索詞時,根據檢索需要選擇布爾邏輯運算符“()”、“或者(OR)”和“不包含(NOT)”,檢索結果由LUCENCE優化排序后返回給用戶。以疾病為知識軸,HIS系統可將疾病的12個知識單元和與之相關的相關藥品、循證、輔助檢查、手術、疾病進展等知識點與HIS的信息流有機結合。手術、藥品、循證、輔助檢查、疾病進展、操作規范、手術圖譜、醫保藥品的分庫檢索,如疾病庫檢索一樣。通過測試工具測試CDD的WEB接口。以心血管內科的假性高血壓為例,疾病reguest的SOAP以及response的SOAP如圖2所示。從圖2可見,假性高血壓的疾病信息完整地封裝在XML格式的SOAP中。
3結語