專利名稱:現(xiàn)場總線至pc104總線的轉(zhuǎn)換裝置及數(shù)據(jù)傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明屬于現(xiàn)場總線控制領(lǐng)域,尤其涉及一種實(shí)現(xiàn)多功能現(xiàn)場總線至PC104總線的轉(zhuǎn)換裝置及數(shù)據(jù)傳輸方法,其適用于各種不同協(xié)議類型的現(xiàn)場總線。
背景技術(shù):
現(xiàn)場總線是指安裝在制造或過程區(qū)域的現(xiàn)場裝置與控制室內(nèi)的自動(dòng)裝置之間的數(shù)字式、串行、多點(diǎn)通信的數(shù)據(jù)總線?,F(xiàn)場總線一般用來組建自動(dòng)化領(lǐng)域中底層數(shù)據(jù)通信網(wǎng)絡(luò)。大多現(xiàn)場總線,無法直接完成與上位機(jī)的互聯(lián),一般需要橋接芯片來完成。PC104總線是一種較為通用的計(jì)算機(jī)總線,通過PC104總線建立PC驅(qū)動(dòng)與底層多功能現(xiàn)場總線鏈路通信的橋梁,是目前最常用的解決方案。但由于現(xiàn)場總線的類型較多,用一種形式較為統(tǒng)一的 PC104鏈路層接口將他們統(tǒng)一起來還有些困難。
發(fā)明內(nèi)容
為了克服現(xiàn)有PC104接口無法統(tǒng)一多種不同類型的現(xiàn)場總線的鏈路層接口這一問題,本發(fā)明設(shè)計(jì)出一種適用范圍交廣的PC104軟件及硬件系統(tǒng),并易于移植于不同的現(xiàn)場總線應(yīng)用場合。依據(jù)本發(fā)明技術(shù)方案,本發(fā)明提供了一種實(shí)現(xiàn)多功能現(xiàn)場總線至PC104總線的轉(zhuǎn)換裝置,其特征在于包括PC104從設(shè)備接口電路,用于通過PC104總線與上位機(jī)進(jìn)行通信; 接收緩沖區(qū),用于接收上位機(jī)或現(xiàn)場總線控制邏輯電路發(fā)送來的數(shù)據(jù);發(fā)送緩沖區(qū),用于向上位機(jī)或現(xiàn)場總線控制邏輯電路發(fā)送數(shù)據(jù);中斷及查詢處理電路,用于處理現(xiàn)場總線控制邏輯電路的對上位機(jī)的服務(wù)請求,并將該請求通過PC104從設(shè)備接口電路傳輸給上位機(jī); 現(xiàn)場總線控制邏輯電路,用于與多功能現(xiàn)場總線通信并實(shí)現(xiàn)控制。此外,本發(fā)明還提供一種上位機(jī)通過PC104總線與多功能現(xiàn)場總線之間傳輸數(shù)據(jù)的方法,其特征在于上位機(jī)通過PC104總線向多功能現(xiàn)場總線發(fā)送數(shù)據(jù)包括步驟(1)上位機(jī)通過PC104總線向命令寄存器寫入開始發(fā)送數(shù)據(jù)的命令;(2)上位機(jī)通過PC104總線向發(fā)送長度寄存器里寫入待發(fā)送數(shù)據(jù)幀的長度;(3)上位機(jī)通過PC104總線向發(fā)送數(shù)據(jù)寄存器中連續(xù)寫入待發(fā)送的數(shù)據(jù);(4)待所有的數(shù)據(jù)寫入完成后,上位機(jī)通過PC104總線向命令寄存器里寫入結(jié)束數(shù)據(jù)發(fā)送的命令;(5)在上位機(jī)將完整的一幀數(shù)據(jù)寫入發(fā)送緩沖區(qū)后,根據(jù)現(xiàn)場總線控制協(xié)議將數(shù)據(jù)通過多功能現(xiàn)場總線發(fā)出;由多功能現(xiàn)場總線通過PC104總線向上位機(jī)發(fā)送數(shù)據(jù)包括如下步驟(21)在現(xiàn)場總線上接收到完整的一幀后,將數(shù)據(jù)存放在接收緩沖區(qū)中;(22)上位機(jī)檢查到接收緩沖區(qū)中有數(shù)據(jù)幀時(shí),向命令寄存器中寫入開始接收的命令;
(23)上位機(jī)讀取接收長度寄存器的值,以明確數(shù)據(jù)幀的長度;(24)上位機(jī)從接收數(shù)據(jù)寄存器中依次讀出接收緩沖區(qū)里的數(shù)據(jù);(25)所有的數(shù)據(jù)接收完成后,上位機(jī)向命令寄存器中寫入結(jié)束接收數(shù)據(jù)的命令。本發(fā)明采用了 FPGA來實(shí)現(xiàn)多功能總線至PC104總線的轉(zhuǎn)換,由于FPGA電路的可配置性,使得能夠非常靈活地使用各種不同協(xié)議類型的多功能現(xiàn)場總線,其并發(fā)執(zhí)行性能也能較好的解決各種協(xié)議所要求的實(shí)時(shí)性。
圖1是本發(fā)明的系統(tǒng)整體架構(gòu)示意圖;圖2是本發(fā)明的FPGA內(nèi)部電路結(jié)構(gòu)圖;圖3是本發(fā)明PC系統(tǒng)中PC104軟件的架構(gòu)圖。
具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明作進(jìn)一步詳細(xì)的說明。圖1是本發(fā)明系統(tǒng)的整體架構(gòu)示意圖;整個(gè)系統(tǒng)分為軟件和硬件兩部分。硬件部分采用FPGA+ASIC解決方案。ASIC主要是對現(xiàn)場總線做實(shí)時(shí)處理,以及協(xié)議轉(zhuǎn)換。FPGA再將這些經(jīng)過轉(zhuǎn)換后的數(shù)據(jù)流和控制流,進(jìn)一步虛擬成易于被處理器接受的收發(fā)鏈路接口, 增強(qiáng)其緩沖能力,從而減少對軟件在實(shí)時(shí)性上的要求。軟件部分主要在PC系統(tǒng)上實(shí)現(xiàn),由驅(qū)動(dòng)程序和應(yīng)用程序兩部分組成。驅(qū)動(dòng)程序基于PC上的PC104總線,它通過訪問PC104來實(shí)現(xiàn)對硬件部分提供的收發(fā)鏈路進(jìn)行管理,并為應(yīng)用提供友好的訪問接口。針對不同協(xié)議類型的現(xiàn)場總線,首先需要確定是否需要ASIC的協(xié)助。一般的數(shù)字鏈路處理,可以在FPGA 內(nèi)部處理,對于較復(fù)雜的協(xié)議,ASIC能提供較完整的解決方案,F(xiàn)PGA僅需要通過控制ASIC 就能控制現(xiàn)場總線。FPGA自身完成總線的實(shí)時(shí)處理后,還需要通過PC104總線與上位機(jī)(PC 機(jī))進(jìn)行通信。在硬件上,采用FPGA來實(shí)現(xiàn)多功能總線至PC104總線的轉(zhuǎn)換。FPGA電路的可配置性,能夠非常靈活地使用各種不同協(xié)議類型的多功能現(xiàn)場總線,其并發(fā)執(zhí)行性能也能較好的解決各種協(xié)議所要求的實(shí)時(shí)性。對于較為復(fù)雜的現(xiàn)場總線,可以加入ASIC以縮短開發(fā)周期。圖2是本發(fā)明的FPGA的系統(tǒng)結(jié)構(gòu)圖;FPGA中,現(xiàn)場總線控制邏輯電路的內(nèi)容相對來說是可變的,因?yàn)樗m應(yīng)不同的現(xiàn)場總線或者ASIC。但是此模塊跟其他模塊的訪問接口可以固定。如圖,接收緩沖區(qū)用于緩存來自上位機(jī)PC104的發(fā)送數(shù)據(jù)流,這些數(shù)據(jù)在現(xiàn)場總線控制邏輯的控制下最終流向現(xiàn)場總線。發(fā)送緩沖區(qū)用于緩存來自現(xiàn)場總線的數(shù)據(jù)流, 這些數(shù)據(jù)在上位機(jī)PC104的控制下最終流向上位機(jī)。另外,F(xiàn)PGA里面還包含中斷及查詢處理電路,在接收到來自現(xiàn)場總線的數(shù)據(jù)時(shí),產(chǎn)生中斷信號,以請求PC機(jī)的軟件服務(wù),這個(gè)電路還可提供一些對現(xiàn)場總線控制模塊的輔助控制單元。此外,PC104從設(shè)備的功能由FPGA 來實(shí)現(xiàn),其主要構(gòu)造為發(fā)送緩沖區(qū)和接收緩沖區(qū)。緩沖區(qū)的作用是實(shí)現(xiàn)實(shí)時(shí)傳輸端與非實(shí)時(shí)傳輸端的轉(zhuǎn)換。在PC104從設(shè)備接口電路中設(shè)置了上位機(jī)用于訪問發(fā)送緩沖區(qū)和接收緩沖區(qū)的寄存器。所定義寄存器包含如下類型命令寄存器、發(fā)送數(shù)據(jù)寄存器、接收數(shù)據(jù)寄存器、發(fā)送長度寄存器、接收長度寄存器、狀態(tài)寄存器。其中,命令寄存器用來表達(dá)不同的命令種類,如開始發(fā)送數(shù)據(jù)、結(jié)束發(fā)送數(shù)據(jù)、開始接收數(shù)據(jù)、結(jié)束接收數(shù)據(jù)。長度寄存器用于上位機(jī)寫入待發(fā)送的數(shù)據(jù)幀的長度,或者用于上位機(jī)讀出待接收的數(shù)據(jù)幀的長度。狀態(tài)寄存器對上位機(jī)而言為只讀類型,上位機(jī)可以通過此寄存器可以了解發(fā)送緩沖區(qū)的狀態(tài)(如空/ 滿情況,剩余的數(shù)據(jù)等)、現(xiàn)場總線上目前的狀態(tài)等。另外,在PC104的接口上,提供中斷以及查詢兩種服務(wù)方式。這就是圖2中PC104從設(shè)備接口電路的功能。在此電路中定義了上位機(jī)(PC機(jī))用于訪問發(fā)送緩沖區(qū)和接收緩沖區(qū)的寄存器地址以及訪問方式。對實(shí)時(shí)性要求較強(qiáng)的服務(wù),通過中斷的方式請求PC軟件的服務(wù);對實(shí)時(shí)性要求不高的服務(wù),可以采用PC定時(shí)或不定時(shí)輪詢的服務(wù)方式。在軟件上,需要PC的驅(qū)動(dòng)上管理好PC104側(cè)的發(fā)送緩沖區(qū)和接收緩沖區(qū),并為應(yīng)用程序提提供較為便捷的訪問接口。PC104驅(qū)動(dòng)為上層應(yīng)用(各種現(xiàn)場總線協(xié)議)提供統(tǒng)一的阻塞式消息發(fā)送和接收接口。圖3是PC系統(tǒng)中PC104軟件的架構(gòu)圖。PC104軟件為PC系統(tǒng)中的應(yīng)用程序提供收據(jù)收發(fā)接口。在PC系統(tǒng)中,對于應(yīng)用需要發(fā)送的數(shù)據(jù),PC104軟件構(gòu)造相應(yīng)的數(shù)據(jù)包,然后通過寄存器接口,將數(shù)據(jù)包提交至FPGA 中的數(shù)據(jù)發(fā)送緩沖區(qū);同時(shí),PC104軟件通過輪詢或中斷方式確定FPGA接收緩沖區(qū)中是否有數(shù)據(jù)包到達(dá),對于到達(dá)的數(shù)據(jù)包解析之后,將數(shù)據(jù)提交給應(yīng)用程序。較為核心的過程在于PC104數(shù)據(jù)鏈路的通信。數(shù)據(jù)的發(fā)送過程,按照如下步驟進(jìn)行上位機(jī)通過PC104總線向多功能現(xiàn)場總線發(fā)送數(shù)據(jù)包括步驟(1)上位機(jī)通過PC104總線向命令寄存器寫入開始發(fā)送數(shù)據(jù)的命令;(2)上位機(jī)通過PC104總線向發(fā)送長度寄存器里寫入待發(fā)送數(shù)據(jù)幀的長度;(3)上位機(jī)通過PC104總線向發(fā)送數(shù)據(jù)寄存器中連續(xù)寫入待發(fā)送的數(shù)據(jù);(4)待所有的數(shù)據(jù)寫入完成后,上位機(jī)通過PC104總線向命令寄存器里寫入結(jié)束數(shù)據(jù)發(fā)送的命令;(5)在上位機(jī)將完整的一幀數(shù)據(jù)寫入發(fā)送緩沖區(qū)后,根據(jù)現(xiàn)場總線控制協(xié)議將數(shù)據(jù)通過多功能現(xiàn)場總線發(fā)出;由多功能現(xiàn)場總線通過PC104總線向上位機(jī)發(fā)送數(shù)據(jù)包括如下步驟(21)在現(xiàn)場總線上接收到完整的一幀后,將數(shù)據(jù)存放在接收緩沖區(qū)中;(22)上位機(jī)檢查到接收緩沖區(qū)中有數(shù)據(jù)幀時(shí),向命令寄存器中寫入開始接收的命令;(23)上位機(jī)讀取接收長度寄存器的值,以明確數(shù)據(jù)幀的長度;(24)上位機(jī)從接收數(shù)據(jù)寄存器中依次讀出接收緩沖區(qū)里的數(shù)據(jù);(25)所有的數(shù)據(jù)接收完成后,上位機(jī)向命令寄存器中寫入結(jié)束接收數(shù)據(jù)的命令。本設(shè)計(jì)方案可以為各種不同現(xiàn)場總線提供易于被計(jì)算機(jī)軟件控制的方法,為實(shí)現(xiàn)現(xiàn)場總線的網(wǎng)絡(luò)控制提供便捷的條件。最后應(yīng)當(dāng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制;盡管參照較佳實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解依然可以對本發(fā)明的具體實(shí)施方式
進(jìn)行修改或者對部分技術(shù)特征進(jìn)行等同替換;而不脫離本發(fā)明技術(shù)方案的精神,其均應(yīng)涵蓋在本發(fā)明請求保護(hù)的技術(shù)方案范圍當(dāng)中。
權(quán)利要求
1.一種實(shí)現(xiàn)多功能現(xiàn)場總線至PC104總線的轉(zhuǎn)換裝置,其特征在于包括PC104從設(shè)備接口電路,用于通過PC104總線與上位機(jī)進(jìn)行通信;接收緩沖區(qū),用于接收上位機(jī)或現(xiàn)場總線控制邏輯電路發(fā)送來的數(shù)據(jù);發(fā)送緩沖區(qū),用于向上位機(jī)或現(xiàn)場總線控制邏輯電路發(fā)送數(shù)據(jù);中斷及查詢處理電路,用于處理現(xiàn)場總線控制邏輯電路的對上位機(jī)的服務(wù)請求,并將該請求通過PC104從設(shè)備接口電路傳輸給上位機(jī);現(xiàn)場總線控制邏輯電路,用于與多功能現(xiàn)場總線通信并實(shí)現(xiàn)控制。
2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)多功能現(xiàn)場總線至PC104總線的轉(zhuǎn)換裝置,其特征在于對實(shí)時(shí)性要求較強(qiáng)的服務(wù),通過中斷的方式請求上位機(jī)的服務(wù)。
3.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)多功能現(xiàn)場總線至PC104總線的轉(zhuǎn)換裝置,其特征在于對實(shí)時(shí)性要求不高的服務(wù),采用上位機(jī)定時(shí)或不定時(shí)輪詢的服務(wù)方式。
4.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)多功能現(xiàn)場總線至PC104總線的轉(zhuǎn)換裝置,其特征在于該轉(zhuǎn)換裝置以FPGA芯片來實(shí)現(xiàn)。
5.根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)多功能現(xiàn)場總線至PC104總線的轉(zhuǎn)換裝置,其特征在于在PC104從設(shè)備接口電路中設(shè)置了上位機(jī)用于訪問發(fā)送緩沖區(qū)和接收緩沖區(qū)的寄存器。
6.根據(jù)權(quán)利要求5所述的實(shí)現(xiàn)多功能現(xiàn)場總線至PC104總線的轉(zhuǎn)換裝置,其特征在于所述寄存器包括命令寄存器,用來表達(dá)開始發(fā)送數(shù)據(jù)、結(jié)束發(fā)送數(shù)據(jù)、開始接收數(shù)據(jù)或結(jié)束接收數(shù)據(jù)的命令;長度寄存器,用于上位機(jī)寫入待發(fā)送的數(shù)據(jù)幀的長度,或者用于上位機(jī)讀出待接收的數(shù)據(jù)幀的長度;狀態(tài)寄存器,用于表示發(fā)送緩沖區(qū)的狀態(tài)、接收緩沖區(qū)的狀態(tài)以及現(xiàn)場總線的狀態(tài)。
7.根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)多功能現(xiàn)場總線至PC104總線的轉(zhuǎn)換裝置,其特征在于還包括ASIC電路,F(xiàn)PGA通過控制ASIC控制現(xiàn)場總線。
8.—種上位機(jī)通過PC104總線向多功能現(xiàn)場總線發(fā)送數(shù)據(jù)的方法,其特征在于包括如下步驟(1)上位機(jī)通過PC104總線向命令寄存器寫入開始發(fā)送數(shù)據(jù)的命令;(2)上位機(jī)通過PC104總線向發(fā)送長度寄存器里寫入待發(fā)送數(shù)據(jù)幀的長度;(3)上位機(jī)通過PC104總線向發(fā)送數(shù)據(jù)寄存器中連續(xù)寫入待發(fā)送的數(shù)據(jù);(4)待所有的數(shù)據(jù)寫入完成后,上位機(jī)通過PC104總線向命令寄存器里寫入結(jié)束數(shù)據(jù)發(fā)送的命令;(5)在上位機(jī)將完整的一幀數(shù)據(jù)寫入發(fā)送緩沖區(qū)后,根據(jù)現(xiàn)場總線控制協(xié)議將數(shù)據(jù)通過多功能現(xiàn)場總線發(fā)出。
9.一種由多功能現(xiàn)場總線通過PC104總線向上位機(jī)發(fā)送數(shù)據(jù)的方法,其特征在于包括如下步驟(1)在多功能現(xiàn)場總線上接收到完整的一幀后,將數(shù)據(jù)存放在接收緩沖區(qū)中;(2)上位機(jī)檢查到接收緩沖區(qū)中有數(shù)據(jù)幀時(shí),向命令寄存器中寫入開始接收的命令;(3)上位機(jī)讀取接收長度寄存器的值,以明確數(shù)據(jù)幀的長度;(4)上位機(jī)從接收數(shù)據(jù)寄存器中依次讀出接收緩沖區(qū)里的數(shù)據(jù);(5)所有的數(shù)據(jù)接收完成后,上位機(jī)向命令寄存器中寫入結(jié)束接收數(shù)據(jù)的命令。
10.根據(jù)權(quán)利要求9所述的由多功能現(xiàn)場總線通過PC104總線向上位機(jī)發(fā)送數(shù)據(jù)的方法,其特征在于向上位機(jī)報(bào)告中斷以請求服務(wù),或者上位機(jī)通過定時(shí)或不定時(shí)輪詢的方式獲知現(xiàn)場總線的服務(wù)請求。
11.一種上位機(jī)通過PC104總線與多功能現(xiàn)場總線之間傳輸數(shù)據(jù)的方法,其特征在于上位機(jī)通過PC104總線向多功能現(xiàn)場總線發(fā)送數(shù)據(jù)包括步驟(1)上位機(jī)通過PC104總線向命令寄存器寫入開始發(fā)送數(shù)據(jù)的命令;(2)上位機(jī)通過PC104總線向發(fā)送長度寄存器里寫入待發(fā)送數(shù)據(jù)幀的長度;(3)上位機(jī)通過PC104總線向發(fā)送數(shù)據(jù)寄存器中連續(xù)寫入待發(fā)送的數(shù)據(jù);(4)待所有的數(shù)據(jù)寫入完成后,上位機(jī)通過PC104總線向命令寄存器里寫入結(jié)束數(shù)據(jù)發(fā)送的命令;(5)在上位機(jī)將完整的一幀數(shù)據(jù)寫入發(fā)送緩沖區(qū)后,根據(jù)現(xiàn)場總線控制協(xié)議將數(shù)據(jù)通過多功能現(xiàn)場總線發(fā)出;由多功能現(xiàn)場總線通過PC104總線向上位機(jī)發(fā)送數(shù)據(jù)包括如下步驟(21)在現(xiàn)場總線上接收到完整的一幀后,將數(shù)據(jù)存放在接收緩沖區(qū)中;(22)上位機(jī)檢查到接收緩沖區(qū)中有數(shù)據(jù)幀時(shí),向命令寄存器中寫入開始接收的命令;(23)上位機(jī)讀取接收長度寄存器的值,以明確數(shù)據(jù)幀的長度;(24)上位機(jī)從接收數(shù)據(jù)寄存器中依次讀出接收緩沖區(qū)里的數(shù)據(jù);(25)所有的數(shù)據(jù)接收完成后,上位機(jī)向命令寄存器中寫入結(jié)束接收數(shù)據(jù)的命令。
12.根據(jù)權(quán)利要求11所述的上位機(jī)通過PC104總線與多功能現(xiàn)場總線之間傳輸數(shù)據(jù)的方法,其特征在于向上位機(jī)報(bào)告中斷以請求服務(wù),或者上位機(jī)通過定時(shí)或不定時(shí)輪詢的方式獲知現(xiàn)場總線的服務(wù)請求。
全文摘要
一種實(shí)現(xiàn)多功能現(xiàn)場總線至PC104總線的轉(zhuǎn)換裝置,其特征在于包括PC104從設(shè)備接口電路,用于通過PC104總線與上位機(jī)進(jìn)行通信;接收緩沖區(qū),用于接收上位機(jī)或現(xiàn)場總線控制邏輯電路發(fā)送來的數(shù)據(jù);發(fā)送緩沖區(qū),用于向上位機(jī)或現(xiàn)場總線控制邏輯電路發(fā)送數(shù)據(jù);中斷及查詢處理電路,用于處理現(xiàn)場總線控制邏輯電路的對上位機(jī)的服務(wù)請求,并將該請求通過PC104從設(shè)備接口電路傳輸給上位機(jī);現(xiàn)場總線控制邏輯電路,用于與多功能現(xiàn)場總線通信并實(shí)現(xiàn)控制。
文檔編號G06F13/40GK102508809SQ20111039448
公開日2012年6月20日 申請日期2011年12月2日 優(yōu)先權(quán)日2011年12月2日
發(fā)明者侯瑋瑋, 唐東升, 李明樹 申請人:中國科學(xué)院軟件研究所