應用于高速運動控制系統(tǒng)的pci從設備核心控制模塊的制作方法
【專利摘要】應用于高速運動控制系統(tǒng)的PCI從設備核心控制模塊,涉及一種PCI從設備核心控制模塊,本發(fā)明為解決現(xiàn)有PCI從設備占用空間大、功能不可定制、成本高、限制嵌入式系統(tǒng)設計的問題。本發(fā)明包括核心狀態(tài)機、配置單元、輸入輸出控制器、校驗塊、RAM讀寫控制器和中斷控制器,所述核心狀態(tài)機包括空閑狀態(tài)idle、配置操作等待狀態(tài)con_wait、端口操作等待狀態(tài)io_wait、存儲操作等待狀態(tài)狀態(tài)mem_wait、讀等待狀態(tài)狀態(tài)read_wait、配置讀寫進行狀態(tài)con、端口或存儲讀寫進行狀態(tài)rw和結(jié)束態(tài)backoff。本發(fā)明用于PCI從設備的開發(fā)中。
【專利說明】應用于高速運動控制系統(tǒng)的PCI從設備核心控制模塊
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種PCI從設備核心控制模塊。
【背景技術(shù)】
[0002]目前的PCI設備多采用PCI配置芯片,占用空間且功能不可定制,成本較高,極大地限制了嵌入式系統(tǒng)的單片化設計;
[0003]以Quartus II的為代表提供的IP核庫中提供的PCI模塊,即使是最小的從設備模塊,也使用了大量的邏輯單元,極大地限制了該類模塊在低成本可編程邏輯器件中的應用。
【發(fā)明內(nèi)容】
[0004]本發(fā)明目的是為了解決現(xiàn)有PCI從設備占用空間大、功能不可定制、成本高、限制嵌入式系統(tǒng)設計的問題,提供了一種應用于高速運動控制系統(tǒng)的PCI從設備核心控制模塊。
[0005]本發(fā)明所述應用于高速運動控制系統(tǒng)的PCI從設備核心控制模塊,它包括核心狀態(tài)機、配置單元、輸入輸出控制器、校驗塊、RAM讀寫控制器和中斷控制器;
[0006]核心狀態(tài)機根據(jù)PCI總線的時序信號產(chǎn)生不同的觸發(fā)信號,從而控制其他模塊進入相應的工作狀態(tài),并同時控制自己的下一狀態(tài);
[0007]配置單元用于完成配置空間寄存器的實現(xiàn)、資源配置、配置操作控制以及地址譯碼;
[0008]輸入輸出控制器用于接收PCI總線和二級總線上傳的數(shù)據(jù),并控制數(shù)據(jù)傳輸;
[0009]校驗塊用于提供PCI總線上的奇偶校驗及其他錯誤校驗,當出現(xiàn)奇偶錯等錯誤時,通知核心狀態(tài)機停止本次數(shù)據(jù)傳輸;
[0010]RAM讀寫控制器用于實現(xiàn)對RAM設備的讀取功能,RAM讀寫控制器內(nèi)部包括一個小型狀態(tài)機和一個小型FIFO存儲器,小型狀態(tài)機用于實現(xiàn)RAM讀寫時序控制;FIF0存儲器用于暫存數(shù)據(jù);
[0011]中斷控制器用于實現(xiàn)中斷功能。
[0012]本發(fā)明的優(yōu)點:本發(fā)明所述應用于高速運動控制系統(tǒng)的PCI從設備核心控制模塊為PCI總線接口模塊將PCI總線的協(xié)議解析、邏輯時序控制、高速緩存等全部實現(xiàn)在單片CPLD或FPGA器件中,實現(xiàn)基本的PCI從設備功能卻占用很少的資源數(shù)量。一旦該方案應用到PCI從設備的開發(fā)中,能夠極大地節(jié)省板卡空間、降低成本。
[0013]本發(fā)明所述應用于高速運動控制系統(tǒng)的PCI從設備核心控制模塊為PCI總線接口模塊在可編程器件中的應用提供了一種高效、低資源占用、定制化的新型實現(xiàn)方式,為PCI總線設備的單片化提供了一個新的方法和思路。該模塊可編寫在可編程邏輯器件中,省去了獨立的PCI接口芯片,有如下優(yōu)點和意義:
[0014]1、減少了外部器件和接線,提高了系統(tǒng)的可靠性,同時降低了開發(fā)成本;
[0015]2、縮短了開發(fā)周期,產(chǎn)品升級換代、增減功能時無需更改硬件系統(tǒng)設計;[0016]3、可實現(xiàn)通用硬件設計針對不同用戶、設備的高度定制化,只需更改PCI總線控制模塊的部分設計,強化、簡化對應的特性和功能,即可設計出對不同設備有不同針對性的模塊,而無需更改硬件設計;
[0017]4、將所有功能邏輯設計在單片可編程器件中,可一起加密。
【專利附圖】
【附圖說明】
[0018]圖1是本發(fā)明所述應用于高速運動控制系統(tǒng)的PCI從設備核心控制模塊的結(jié)構(gòu)示意圖;
[0019]圖2是核心狀態(tài)機的狀態(tài)轉(zhuǎn)換圖;
[0020]圖3是PCI設備配置讀操作的時序仿真結(jié)果示意圖;
[0021]圖4是PCI設備配置寫操作的時序仿真結(jié)果示意圖;
[0022]圖5是設備端口讀操作的仿真結(jié)果示意圖;
[0023]圖6是設備端口寫操作的時序仿真結(jié)果示意圖;
[0024]圖7是設備存儲讀操作的時序仿真結(jié)果示意圖;
[0025]圖8是設備存儲寫操作的時序仿真結(jié)果示意圖。
【具體實施方式】
[0026]【具體實施方式】一:下面結(jié)合圖1說明本實施方式,本實施方式所述應用于高速運動控制系統(tǒng)的PCI從設備核心控制模塊,它包括核心狀態(tài)機、配置單元、輸入輸出控制器、校驗塊、RAM讀寫控制器和中斷控制器;
[0027]核心狀態(tài)機根據(jù)PCI總線的時序信號產(chǎn)生不同的觸發(fā)信號,從而控制其他模塊進入相應的工作狀態(tài),并同時控制自己的下一狀態(tài);
[0028]配置單元用于完成配置空間寄存器的實現(xiàn)、資源配置、配置操作控制以及地址譯碼;
[0029]輸入輸出控制器用于接收PCI總線和二級總線上傳的數(shù)據(jù),并控制數(shù)據(jù)傳輸;
[0030]校驗塊用于提供PCI總線上的奇偶校驗及其他錯誤校驗,當出現(xiàn)奇偶錯等錯誤時,通知核心狀態(tài)機停止本次數(shù)據(jù)傳輸;
[0031]RAM讀寫控制器用于實現(xiàn)對RAM設備的讀取功能,RAM讀寫控制器內(nèi)部包括一個小型狀態(tài)機和一個小型FIFO存儲器,小型狀態(tài)機用于實現(xiàn)RAM讀寫時序控制;FIF0存儲器用于暫存數(shù)據(jù);
[0032]中斷控制器用于實現(xiàn)中斷功能。
[0033]本實施方式中,F(xiàn)IFO存儲器表示先入先出隊列存儲器,起到數(shù)據(jù)緩沖的作用;輸入輸出控制器用于防止發(fā)生總線沖突。
[0034]【具體實施方式】二:下面結(jié)合圖2說明本實施方式,本實施方式對實施方式一作進一步說明,所述核心狀態(tài)機包括空閑狀態(tài)idle、配置操作等待狀態(tài)con_wait、端口操作等待狀態(tài)io_wait、存儲操作等待狀態(tài)狀態(tài)mem_wait、讀等待狀態(tài)狀態(tài)read_wait、配置讀寫進行狀態(tài)con、端口或存儲讀寫進行狀態(tài)rw和結(jié)束態(tài)backoff ;
[0035]空閑狀態(tài)idle,從設備不占用PCI總線,等待主設備發(fā)起的讀或?qū)懻埱?;當接收到總線命令為讀命令、FRAME#低電平信息時,跳轉(zhuǎn)到讀等待狀態(tài)read_wait ;當接收到總線命令為寫命令,F(xiàn)RAME#低電平信息時,同時跳轉(zhuǎn)到配置操作等待狀態(tài)con_wait、端口操作等待狀態(tài)io_wait和存儲操作等待狀態(tài)狀態(tài)mem_wait ;其中:FRAME#表示一個傳輸幀開始;
[0036]配置操作等待狀態(tài)con_wait,表示主設備已向從設備發(fā)起配置空間操作請求,包括配置讀操作和配置寫操作,從設備開始準備接受主設備的讀或?qū)懻埱螅划斀邮盏絀RDY#信號線為低電平信號或后端數(shù)據(jù)已準備好信號時,跳轉(zhuǎn)到配置讀寫進行狀態(tài)con;當接收到的信號是IRDY#信號線為低電平信號時,進行寫操作,當接收到的信號是后端數(shù)據(jù)已準備好時,進行讀操作;其中:IRDY#表示主設備已準備好;
[0037]端口操作等待狀態(tài)io_wait,表示主設備已向從設備發(fā)起IO空間操作請求,包括端口讀操作和端口寫操作,從設備開始準備接受主設備的讀或?qū)懻埱螅划斀邮盏絀RDYi^f號線為低電平信號或后端數(shù)據(jù)已準備好信號時,跳轉(zhuǎn)到端口或存儲讀寫進行狀態(tài)rw ;當接收到的信號是IRDY#信號線為低電平時,進行寫操作,當接收到的信號是后端數(shù)據(jù)已準備好時,進行讀操作;
[0038]存儲操作等待狀態(tài)mem_wait,表示主設備已向從設備發(fā)起內(nèi)存空間操作請求,包括內(nèi)存讀操作和內(nèi)存寫操作,從設備開始準備接受主設備的讀或?qū)懻埱螅划斀邮盏絀RDY#信號線為低電平信號或后端數(shù)據(jù)已準備好信號時,跳轉(zhuǎn)到端口或存儲讀寫進行狀態(tài)rw ;當接收到的信號是IRDY#信號線為低電平時,進行寫操作,當接收到的信號是后端數(shù)據(jù)已準備好時,進行讀操作;
[0039]讀等待狀態(tài)reacLwait,讀操作特有的等待狀態(tài),維持一個周期,用于實現(xiàn)從主設備驅(qū)動總線到從設備驅(qū)動總線的過渡;配置讀、端口讀、存儲讀都包含該狀態(tài);同時無條件跳轉(zhuǎn)到配置操作等待狀態(tài)con_wait、端口操作等待狀態(tài)io_wait和存儲操作等待狀態(tài)狀態(tài)mem—wait ;
[0040]配置讀寫進行狀態(tài)con,該狀態(tài)的開始階段進行了一次配置數(shù)據(jù)的傳輸,該狀態(tài)結(jié)束時,從設備開始準備結(jié)束本次傳輸;無條件轉(zhuǎn)換到結(jié)束態(tài)backoff ;
[0041]端口或存儲讀寫進行狀態(tài)rw,該狀態(tài)的開始階段進行端口數(shù)據(jù)或內(nèi)存數(shù)據(jù)的傳輸;當進行端口訪問時,該狀態(tài)無條件轉(zhuǎn)換到結(jié)束態(tài)backoff ;當進行內(nèi)存訪問時,如果正在進行的是突發(fā)傳輸,則該狀態(tài)結(jié)束后還是端口或存儲讀寫進行狀態(tài)rw,如果正在進行的是非突發(fā)傳輸,則無條件轉(zhuǎn)換到結(jié)束態(tài)backoff ;
[0042]結(jié)束態(tài)backoff,一次傳輸結(jié)束后的一個狀態(tài),維持一個周期,用于滿足s/t/s型信號的使用要求,保證該類信號維持一個周期的高電平再將其釋放;無條件轉(zhuǎn)換到空閑狀態(tài) idle。
[0043]本實施方式中,所述從設備為數(shù)據(jù)采集卡。read_wait狀態(tài)的目的是防止總線沖關(guān)。
[0044]本實施方式中,主要讀寫操作中的狀態(tài)轉(zhuǎn)換如表1所示:
[0045]表1主要讀寫操作中狀態(tài)機的狀態(tài)轉(zhuǎn)換
[0046]
【權(quán)利要求】
1.應用于高速運動控制系統(tǒng)的PCI從設備核心控制模塊,其特征在于,它包括核心狀態(tài)機、配置單元、輸入輸出控制器、校驗塊、RAM讀寫控制器和中斷控制器; 核心狀態(tài)機根據(jù)PCI總線的時序信號產(chǎn)生不同的觸發(fā)信號,從而控制其他模塊進入相應的工作狀態(tài),并同時控制自己的下一狀態(tài); 配置單元用于完成配置空間寄存器的實現(xiàn)、資源配置、配置操作控制以及地址譯碼; 輸入輸出控制器用于接收PCI總線和二級總線上傳的數(shù)據(jù),并控制數(shù)據(jù)傳輸; 校驗塊用于提供PCI總線上的奇偶校驗及其他錯誤校驗,當出現(xiàn)奇偶錯等錯誤時,通知核心狀態(tài)機停止本次數(shù)據(jù)傳輸; RAM讀寫控制器用于實現(xiàn)對RAM設備的讀取功能,RAM讀寫控制器內(nèi)部包括一個小型狀態(tài)機和一個小型FIFO存儲器,小型狀態(tài)機用于實現(xiàn)RAM讀寫時序控制;FIF0存儲器用于暫存數(shù)據(jù); 中斷控制器用于實現(xiàn)中斷功能。
2.根據(jù)權(quán)利要求1所述應用于高速運動控制系統(tǒng)的PCI從設備核心控制模塊,其特征在于,所述核心狀態(tài)機包括空閑狀態(tài)idle、配置操作等待狀態(tài)con_wait、端口操作等待狀態(tài)io_wait、存儲操作等待狀態(tài)狀態(tài)mem_wait、讀等待狀態(tài)狀態(tài)read_wait、配置讀寫進行狀態(tài)con、端口或存儲讀寫進行狀態(tài)rw和結(jié)束態(tài)backoff ; 空閑狀態(tài)idle,從設備不占用PCI總線,等待主設備發(fā)起的讀或?qū)懻埱?;當接收到總線命令為讀命令、FRAME#低電平信息時,跳轉(zhuǎn)到讀等待狀態(tài)read_wait ;當接收到總線命令為寫命令,F(xiàn)RAME#低電平信息時,同時跳轉(zhuǎn)到配置操作等待狀態(tài)con_wait、端口操作等待狀態(tài)io_wait和存儲操作等待狀態(tài)狀態(tài)mem_wait ;其中:FRAME#表示一個傳輸幀開始; 配置操作等待狀態(tài)con_wait,表示主設備已向從設備發(fā)起配置空間操作請求,包括配置讀操作和配置寫操作,從設備開始`準備接受主設備的讀或?qū)懻埱?;當接收到IRDY#信號線為低電平信號或后端數(shù)據(jù)已準備好信號時,跳轉(zhuǎn)到配置讀寫進行狀態(tài)con;當接收到的信號是IRDY#信號線為低電平信號時,進行寫操作,當接收到的信號是后端數(shù)據(jù)已準備好時,進行讀操作;其中:IRDY#表示主設備已準備好; 端口操作等待狀態(tài)io_wait,表示主設備已向從設備發(fā)起IO空間操作請求,包括端口讀操作和端口寫操作,從設備開始準備接受主設備的讀或?qū)懻埱螅划斀邮盏絀RDY#信號線為低電平信號或后端數(shù)據(jù)已準備好信號時,跳轉(zhuǎn)到端口或存儲讀寫進行狀態(tài)rw ;當接收到的信號是IRDY#信號線為低電平時,進行寫操作,當接收到的信號是后端數(shù)據(jù)已準備好時,進行讀操作; 存儲操作等待狀態(tài)mem_wait,表示主設備已向從設備發(fā)起內(nèi)存空間操作請求,包括內(nèi)存讀操作和內(nèi)存寫操作,從設備開始準備接受主設備的讀或?qū)懻埱螅划斀邮盏絀RDY#信號線為低電平信號或后端數(shù)據(jù)已準備好信號時,跳轉(zhuǎn)到端口或存儲讀寫進行狀態(tài)rw ;當接收到的信號是IRDY#信號線為低電平時,進行寫操作,當接收到的信號是后端數(shù)據(jù)已準備好時,進行讀操作; 讀等待狀態(tài)read_wait,讀操作特有的等待狀態(tài),維持一個周期,用于實現(xiàn)從主設備驅(qū)動總線到從設備驅(qū)動總線的過渡;配置讀、端口讀、存儲讀都包含該狀態(tài);同時無條件跳轉(zhuǎn)到配置操作等待狀態(tài)con_wait、端口操作等待狀態(tài)io_wait和存儲操作等待狀態(tài)狀態(tài)mem_wait ;配置讀寫進行狀態(tài)con,該狀態(tài)的開始階段進行了一次配置數(shù)據(jù)的傳輸,該狀態(tài)結(jié)束時,從設備開始準備結(jié)束本次傳輸;無條件轉(zhuǎn)換到結(jié)束態(tài)backoff ; 端口或存儲讀寫進行狀態(tài)rw,該狀態(tài)的開始階段進行端口數(shù)據(jù)或內(nèi)存數(shù)據(jù)的傳輸;當進行端口訪問時,該狀態(tài)無條件轉(zhuǎn)換到結(jié)束態(tài)backoff ;當進行內(nèi)存訪問時,如果正在進行的是突發(fā)傳輸,則該狀態(tài)結(jié)束后還是端口或存儲讀寫進行狀態(tài)rw,如果正在進行的是非突發(fā)傳輸,則無條件轉(zhuǎn)換到結(jié)束態(tài)backoff ; 結(jié)束態(tài)backoff,一次傳輸結(jié)束后的一個狀態(tài),維持一個周期,用于滿足s/t/s型信號的使用要求,保證該類信號維持一個周期的高電平再將其釋放;無條件轉(zhuǎn)換到空閑狀態(tài)idle。
3.根據(jù)權(quán)利要求1所述應用于高速運動控制系統(tǒng)的PCI從設備核心控制模塊,其特征在于,所述配置單元包括配置空間寄存器、資源配置模塊、控制配置讀寫操作模塊和地址譯碼模塊; 配置空間寄存器用于在配置單元中實現(xiàn)設備的配置空間,設置PCI從設備所需的配置寄存器; 資源配置模塊:在上電后,讀取PCI設備的配置信息,并獲取PCI設備的資源請求,然后分配資源; 控制配置讀寫操作模塊:當PCI的FRAME#信號線被拉低,且IDSEL信號被置高時,系統(tǒng)將對設備的配置空間進行讀寫操作;此時,配置單元在核心狀態(tài)機的控制下配合主設備的訪問操作;其中=IDSEL信號表示設備選中信號; 地址譯碼模塊:當PCI的FRAME#信號線被拉低,且IDSEL信號保持低電平時,配置單元對AD總線上的地址進行譯碼;如果該地址在該設備的資源范圍內(nèi),則表明系統(tǒng)將對該設備的端口空間或存儲空間進行讀寫操作,配置單元將通知核心狀態(tài)機該設備已被選中,需要立即進入訪問狀態(tài)。
4.根據(jù)權(quán)利要求3所述應用于高速運動控制系統(tǒng)的PCI從設備核心控制模塊,其特征在于,所述資源配置模塊獲取PCI設備的資源請求,然后分配資源通過基址寄存器實現(xiàn),基址寄存器的中間幾位鎖定為“0”,鎖定的位數(shù)取決于資源區(qū)的大小;上電后,輸入輸出控制器先向基址寄存器中寫入全“1”,再將其讀回,通過讀回的數(shù)值獲取設備所請求的資源區(qū)大??;資源分配好后,再將資源區(qū)的基址信息寫入設備上的基址寄存器中。
【文檔編號】G06F9/22GK103729165SQ201410020066
【公開日】2014年4月16日 申請日期:2014年1月16日 優(yōu)先權(quán)日:2014年1月16日
【發(fā)明者】高會軍, 張增杰, 孫光輝, 余洋, 邱搏博 申請人:哈爾濱工業(yè)大學