欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

運動控制卡與端子板間實現(xiàn)數(shù)據(jù)通信的電路結(jié)構(gòu)及方法

文檔序號:6273621閱讀:281來源:國知局
專利名稱:運動控制卡與端子板間實現(xiàn)數(shù)據(jù)通信的電路結(jié)構(gòu)及方法
技術(shù)領(lǐng)域
本發(fā)明涉及工業(yè)自動化控制領(lǐng)域,特別涉及數(shù)控系統(tǒng)運動控制卡控制技術(shù)領(lǐng)域,具體是指一種數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu)及其方法。
背景技術(shù)
工業(yè)自動化控制領(lǐng)域中運動控制卡與端子板之間出現(xiàn)了并行通信和串行通信兩種方式。其中并行通信方式多采用直連,兩者之間沒有通信協(xié)議,只是簡單的端口數(shù)據(jù)輸入輸出。接口方式如圖1所示。此種并行通信方式的設(shè)計簡單,通信速度較快,但不易于擴展,且板卡與端子板之間的連線較多,易受干擾,隨著信號的增加,產(chǎn)品成本較高。隨著制造工藝的提高,芯片速度越來越快,傳輸速度不再是制約數(shù)據(jù)傳輸?shù)闹饕獑栴}。近年來,工業(yè)自動化控制領(lǐng)域串行通信興起,如CAN總線、485總線、工業(yè)以太網(wǎng)等,使用串行通信方式的設(shè)備層出不窮。CAN總線及工業(yè)以太網(wǎng)協(xié)議實時性高,性能較好,但其協(xié)議較為復(fù)雜,開發(fā)成本較高。因此,迫切需要一種低成本、性能好、設(shè)計簡單、可靠性高、易于擴展的新的通信機制。

發(fā)明內(nèi)容
本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)中的缺點,提供一種數(shù)據(jù)通信速度較快、協(xié)議簡單、開發(fā)周期較短、產(chǎn)品性能可靠、集成度較高、擴展性較強、工作性能穩(wěn)定可靠、適用范圍較為廣泛的數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu)及其方法。為了實現(xiàn)上述的目的,本發(fā)明的數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu)及其方法如下:該數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu),包括運動控制卡、端子板和數(shù)個擴展端子板,所述的運動控制卡與外部計算機相連接,且所述的運動控制卡、端子板和數(shù)個擴展端子板依次串接,其主要特點是,所述的運動控制卡上承載有主機接口和UART接口,所述的端子板上承載有端子板第一 UART接口和端子板第二 UART接口,所述的各個擴展端子板上均承載有各自的擴展端子板第一 UART接口和擴展端子板第二 UART接口,所述的運動控制卡的主機接口與外部計算機相連接,且該運動控制卡的UART接口與所述的端子板第一 UART接口相連接,所述的端子板第二 UART接口與一擴展端子板上的擴展端子板第一 UART接口相連接,該擴展端子板上的擴展端子板第
二UART接口與其余的擴展端子板依次串接。該數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu)中的運動控制卡的主機接口為PCI金手指插條。該數(shù)控系統(tǒng)中 基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu)中的UART接口和端子板第一 UART接口均為高速UART接口。該利用上述的電路結(jié)構(gòu)實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法,其中包括運動控制卡進行數(shù)據(jù)接收和發(fā)送處理操作、端子板進行數(shù)據(jù)接收響應(yīng)和轉(zhuǎn)發(fā)數(shù)據(jù)處理操作,所述的運動控制卡進行數(shù)據(jù)接收和發(fā)送處理操作,包括以下步驟:(11)所述的運動控制卡進行初始化配置并設(shè)定定時器中斷;(12)當(dāng)定時器超時時啟動定時器中斷服務(wù);(13)判斷是否收到外部計算機發(fā)送來的數(shù)據(jù)幀;(14)如果未收到,則發(fā)送重發(fā)幀,并結(jié)束;如果接收到,則判斷CRC校驗是否正確;(15)如果CRC校驗不正確,則發(fā)送重發(fā)幀,并結(jié)束;如果CRC校驗正確,則判斷上
一次通信是否正常;(16)如果不正常,則結(jié)束;如果正常,則讀取緩沖控制寄存器,并進行緩沖控制處理操作;

(17)查找命令幀地址映射表;(18)對命令幀進行打包;(19)設(shè)置重發(fā)幀為命令幀,并發(fā)送至所述的端子板;所述的端子板進行數(shù)據(jù)接收響應(yīng)和轉(zhuǎn)發(fā)數(shù)據(jù)處理操作,包括以下步驟:(21)所述的端子板進行初始化配置并設(shè)置定時器中斷初始化;(22)當(dāng)定時器超時時啟動定時器中斷服務(wù),將從所述的端子板第一 UART接口所接收到的數(shù)據(jù)存儲于相應(yīng)的緩沖區(qū)中;(23)判斷是否已經(jīng)配置數(shù)據(jù)起始幀;(24)如果是,則設(shè)置更新模式有效;(25)判斷接收到的數(shù)據(jù)是否為OUT數(shù)據(jù)幀;(26)如果是,則設(shè)置正常模式有效;(27)判斷是否為配置模式;(28)如果是,則進行端子板配置操作處理;如果否,則進行數(shù)據(jù)緩存和轉(zhuǎn)發(fā)操作處理;(29)將定時器變量清零。該實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的數(shù)據(jù)幀可以為數(shù)據(jù)起始幀、脈沖數(shù)據(jù)幀、OUT幀或者擴展數(shù)據(jù)幀。該實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的進行初始化配置并設(shè)定定時器中斷,包括以下步驟:(111)所述的運動控制卡讀取配置數(shù)據(jù);(112)所述的運動控制卡建立映射表;(113)設(shè)置重發(fā)幀為初始幀;(114)初始化定時器的超時時間;(115)開啟定時器中斷;(116)所述的運動控制卡進行數(shù)據(jù)映射表計算。該實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的進行緩沖控制處理操作,包括以下步驟:(161)所述的運動控制卡判斷是否有緩沖控制;(162)如果有緩沖控制,則繼續(xù)步驟(163);如果沒有緩沖控制,則繼續(xù)步驟(165);(163)判斷端子板脈沖數(shù)據(jù)幀的FIFO隊列是否滿;(164)如果滿,則發(fā)送OUT幀,并返回上述步驟(17);如果不滿,則發(fā)送脈沖數(shù)據(jù)幀,并返回上述步驟(17);(165)判斷端子板脈沖數(shù)據(jù)幀的FIFO隊列是否空;(166)如果空,則發(fā)送脈沖數(shù)據(jù)幀,并返回上述步驟(17);如果不空,則發(fā)送OUT幀,并返回上述步驟(17)。該實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的端子板進行初始化配置并設(shè)置定時器中斷初始化,包括以下步驟:(211)開啟串口中斷初始化;(212)判斷是否處于更新模式;(213)如果是,則進行配置更新處理操作;(214)如果否,則進行數(shù)據(jù)緩存轉(zhuǎn)發(fā)處理操作。該實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的進行配置更新處理操作,包括以下步驟:(2131)判斷閃存擦除是否未完成且標(biāo)識ID是本系統(tǒng);(2132)如果是,則擦除閃存;(2133)判斷是否閃存擦除完成且配置緩沖區(qū)有數(shù)據(jù);(2134)如果是,則繼續(xù)步驟(2135);如果否,則繼續(xù)步驟(2137);(2135)將配置緩沖區(qū)中的數(shù)據(jù)寫入到閃存中,再進行讀回并比較是否與緩沖區(qū)中的數(shù)據(jù)是否相同;(2136)如果否,則設(shè)置配置錯誤標(biāo)志有效;(2137)判斷配置數(shù)據(jù)緩沖區(qū)的地址是否是擦除的首地址且配置沒有錯誤;(2138)如果是,則設(shè)置配置完成標(biāo)志有效并返回步驟(22);否則直接返回步驟(22)。該實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的進行數(shù)據(jù)緩存轉(zhuǎn)發(fā)處理操作,包括以下步驟:(2141)判斷是否中斷超時;(2142)如果否,則取輸出OUT緩沖區(qū)的數(shù)據(jù)寫入輸出OUT端口,同時讀取輸入IN端口數(shù)據(jù)寫入輸入IN緩沖區(qū),并繼續(xù)步驟(2144);(2143)如果是,則進行超時處理,將相應(yīng)的端口關(guān)閉,并繼續(xù)步驟(2144);(2144)將數(shù)據(jù)寫入到端子板第一 UART接口的發(fā)送緩沖區(qū);(2145)將數(shù)據(jù)寫入到端子板第二 UART接口的發(fā)送緩沖區(qū),并返回步驟(22)。該實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的進行端子板配置操作處理,包括以下步驟:(281)判斷是否為配置數(shù)據(jù)起始幀;(282)如果是,則 繼續(xù)步驟(283);如果否,則繼續(xù)步驟(288);
(283)初始化變量;(284)將配置信息進行緩存處理;(285)向所述的端子板第一 UART接口進行應(yīng)答回復(fù);(286)清空所述的端子板第二 UART接口的數(shù)據(jù);(287)發(fā)送配置數(shù)據(jù)起始幀到所述的端子板第二 UART接口,并返回步驟(29);(288 )將配置信息進行緩存處理;(289)向所述的端子板第一 UART接口進行應(yīng)答回復(fù);(2810)判斷是否配置數(shù)據(jù);(2811)如果是,則配置數(shù)據(jù)緩沖標(biāo)志有效;(2812)接收所述的端子板第二 UART接口的數(shù)據(jù);(2813)判斷是否數(shù)據(jù)接收成功且與下行通信的CRC校驗標(biāo)志位有效且配置數(shù)據(jù)緩沖區(qū)數(shù)據(jù)有效;(2814)如果否,則繼續(xù)步驟(2817);如果是,則判斷上一幀數(shù)據(jù)是配置數(shù)據(jù)起始幀或者擦除標(biāo)志完成,且上一幀數(shù)據(jù)下行系統(tǒng)已經(jīng)接收到;(2815)如 果是,則繼續(xù)步驟(2816);如果否,則繼續(xù)步驟(2817);(2816)發(fā)送配置數(shù)據(jù)幀至所述的端子板第二 UART接口,并返回步驟(29);(2817)發(fā)送重發(fā)幀至所述的端子板第二 UART接口,并返回步驟(29)。該實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的進行數(shù)據(jù)緩存和轉(zhuǎn)發(fā)操作處理,包括以下步驟:(291)判斷是否為數(shù)據(jù)起始幀;(292)如果是,則繼續(xù)步驟(293);如果否,則繼續(xù)步驟(295);(293)將端子板的信息數(shù)據(jù)進行緩存處理;(294)向所述的端子板第一 UART接口進行應(yīng)答回復(fù),并繼續(xù)步驟(2911);(295)判斷發(fā)送緩沖區(qū)是否有效;(296)如果是,則繼續(xù)步驟(297);如果否,則繼續(xù)步驟(299);(297)回復(fù)發(fā)送緩沖區(qū)數(shù)據(jù)至所述的端子板第一 UART接口 ;(298)清除發(fā)送緩沖區(qū)有效標(biāo)志,并繼續(xù)步驟(2911);(299)將端子板輸入IN數(shù)據(jù)進行緩存處理;(2910)向所述的端子板第一 UART接口進行應(yīng)答回復(fù),并繼續(xù)步驟(2911);(2911)判斷是否成功接收所述的端子板第一 UART接口的數(shù)據(jù)且CRC校驗標(biāo)志位有效;(2912)如果是,則繼續(xù)步驟(2913);如果否,則繼續(xù)步驟(2917);(2913)清除錯誤計數(shù) ErrCnt ;(2914)判斷退出報警EXT_ALARM標(biāo)志是否有效;(2915)如果是,則繼續(xù)步驟(2921);如果否,則回復(fù)發(fā)送緩沖區(qū)數(shù)據(jù)至所述的端子板第一 UART接口 ;(2916)清除發(fā)送緩沖區(qū)有效標(biāo)志,并返回上述步驟(29);(2917)判斷錯誤計數(shù)ErrCnt是否小于系統(tǒng)預(yù)設(shè)的最大錯誤數(shù);(2918)如果否,則繼續(xù)步驟(2921);如果是,則繼續(xù)步驟(2919);
(2919)將錯誤計數(shù)ErrCnt增加I ;(2920)將重發(fā)幀回復(fù)至所述的端子板第一 UART接口,并返回上述步驟(29);(2921)將數(shù)據(jù)起始幀回復(fù)至所述的端子板第一 UART接口,并返回上述步驟(29)。該實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的最大錯誤數(shù)為100。采用了該發(fā)明的數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu)及其方法,由于其中采用串行差分通信方式與端子板之間進行數(shù)據(jù)傳輸,端子板與端子板之間采用級聯(lián)的方式進行端子板擴展,并采用DB9芯線連接,連線較少,成本較低,而且采用xilinx spantar6系列的FPGA芯片,整個系統(tǒng)的數(shù)據(jù)處理以及通信協(xié)議實現(xiàn)均由FPGA完成,集成度較高,數(shù)據(jù)幀采用16字節(jié)等長數(shù)據(jù)幀傳輸,攜帶CRC等校驗信息,具有重發(fā)機制,保證了數(shù)據(jù)的有效、可靠傳輸,性能好,設(shè)計簡單,可靠性高,易于擴展,工作性能穩(wěn)定可靠、適用范圍較為廣泛。


圖1為現(xiàn)有技術(shù)中的運動控制卡與端子板之間的通信接口方式示意圖。圖2為本發(fā)明的數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu)的整體示意圖。圖3為本發(fā)明的數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu)的整體系統(tǒng)架構(gòu)示意圖。圖4為本發(fā)明的數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu)中的運動控制卡功能 架構(gòu)示意圖。圖5為本發(fā)明的數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu)中的端子板功能架構(gòu)示意圖。圖6為本發(fā)明的數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu)中的運動控制卡電路布局結(jié)構(gòu)示意圖。圖7為本發(fā)明的數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu)中的端子板電路布局結(jié)構(gòu)示意圖。圖8為本發(fā)明的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的運動控制卡中的FPGA邏輯功能模塊框圖。圖9為本發(fā)明的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的端子板中的FPGA邏輯功能模塊框圖。圖10為本發(fā)明的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的數(shù)據(jù)幀通信協(xié)議示意圖。圖11為本發(fā)明的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的運動控制卡與端子板通信過程示意圖。圖12為本發(fā)明的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的運動控制卡進行初始化配置并設(shè)定定時器中斷流程圖。圖13為本發(fā)明的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的運動控制卡進行數(shù)據(jù)接收和發(fā)送處理操作過程中的中斷服務(wù)程序處理流程圖。圖14為本發(fā)明的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的端子板進行初始化配置并設(shè)置定時器中斷初始化流程圖。圖15為本發(fā)明的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的端子板進行數(shù)據(jù)接收響應(yīng)和轉(zhuǎn)發(fā)數(shù)據(jù)處理操作過程中的中斷服務(wù)程序處理流程圖。
具體實施例方式為了能夠更清楚地理解本發(fā)明的技術(shù)內(nèi)容,特舉以下實施例詳細說明。請參閱圖2至圖7所示,該數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu),包括運動控制卡、端子板和數(shù)個擴展端子板,所述的運動控制卡與外部計算機相連接,且所述的運動控制卡、端子板和數(shù)個擴展端子板依次串接,其中所述的運動控制卡上承載有主機接口和UART接口,所述的端子板上承載有端子板第一 UART接口和端子板第二 UART接口,所述的各個擴展端子板上均承載有各自的擴展端子板第一UART接口和擴展端子 板第二 UART接口,所述的運動控制卡的主機接口與外部計算機相連接,且該運動控制卡的UART接口與所述的端子板第一 UART接口相連接,所述的端子板第二UART接口與一擴展端子板上的擴展端子板第一 UART接口相連接,該擴展端子板上的擴展端子板第二 UART接口與其余的擴展端子板依次串接。其中,所述的運動控制卡的主機接口為PCI金手指插條,所述的UART接口和端子板第一 UART接口均為高速UART接口。再請參閱圖8至圖15所示,該利用上述的電路結(jié)構(gòu)實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法,其中包括運動控制卡進行數(shù)據(jù)接收和發(fā)送處理操作、端子板進行數(shù)據(jù)接收響應(yīng)和轉(zhuǎn)發(fā)數(shù)據(jù)處理操作,所述的運動控制卡進行數(shù)據(jù)接收和發(fā)送處理操作,包括以下步驟:(11)所述的運動控制卡進行初始化配置并設(shè)定定時器中斷,包括以下步驟:(a)所述的運動控制卡讀取配置數(shù)據(jù);(b)所述的運動控制卡建立映射表;(c)設(shè)置重發(fā)幀為初始幀;(d)初始化定時器的超時時間;(e)開啟定時器中斷;(f)所述的運動控制卡進行數(shù)據(jù)映射表計算;(12)當(dāng)定時器超時時啟動定時器中斷服務(wù);(13)判斷是否收到外部計算機發(fā)送來的數(shù)據(jù)幀;該數(shù)據(jù)幀可以為數(shù)據(jù)起始幀、脈沖數(shù)據(jù)幀、OUT幀或者擴展數(shù)據(jù)幀;(14)如果未收到,則發(fā)送重發(fā)幀,并結(jié)束;如果接收到,則判斷CRC校驗是否正確;(15)如果CRC校驗不正確,則發(fā)送重發(fā)幀,并結(jié)束;如果CRC校驗正確,則判斷上
一次通信是否正常;(16)如果不正常,則結(jié)束;如果正常,則讀取緩沖控制寄存器,并進行緩沖控制處理操作;該進行緩沖控制處理操作,包括以下步驟:
(a)所述的運動控制卡判斷是否有緩沖控制;(b)如果有緩沖控制,則繼續(xù)步驟(C);如果沒有緩沖控制,則繼續(xù)步驟(e);(c)判斷端子板脈沖數(shù)據(jù)幀的FIFO隊列是否滿;(d)如果滿,則發(fā)送OUT幀,并返回步驟(17);如果不滿,則發(fā)送脈沖數(shù)據(jù)幀,并返回步驟(17);(e)判斷端子板脈沖數(shù)據(jù)幀的FIFO隊列是否空;(f)如果空,則發(fā)送脈沖數(shù)據(jù)幀,并返回步驟(17);如果不空,則發(fā)送OUT幀,并返回步驟(17);(17)查找命令幀地址映射表;( 18)對命令幀進行打包;(19)設(shè)置重發(fā)幀為命令幀,并發(fā)送至所述的端子板;

所述的端子板進行數(shù)據(jù)接收響應(yīng)和轉(zhuǎn)發(fā)數(shù)據(jù)處理操作,包括以下步驟:(21)所述的端子板進行初始化配置并設(shè)置定時器中斷初始化,包括以下步驟:(a)開啟串口中斷初始化;(b)判斷是否處于更新模式;(c)如果是,則進行配置更新處理操作,包括以下步驟:(i)判斷閃存擦除是否未完成且標(biāo)識ID是本系統(tǒng);(ii)如果是,則擦除閃存;(iii)判斷是否閃存擦除完成且配置緩沖區(qū)有數(shù)據(jù);(iv)如果是,則繼續(xù)步驟(V);如果否,則繼續(xù)步驟(vii);(V)將配置緩沖區(qū)中的數(shù)據(jù)寫入到閃存中,再進行讀回并比較是否與緩沖區(qū)中的數(shù)據(jù)是否相同;(Vi)如果否,則設(shè)置配置錯誤標(biāo)志有效;(vii)判斷配置數(shù)據(jù)緩沖區(qū)的地址是否是擦除的首地址且配置沒有錯誤;(viii)如果是,則設(shè)置配置完成標(biāo)志有效并返回步驟(22);否則直接返回步驟
(22);(d)如果否,則進行數(shù)據(jù)緩存轉(zhuǎn)發(fā)處理操作,包括以下步驟:(i)判斷是否中斷超時;(ii)如果否,則取輸出OUT緩沖區(qū)的數(shù)據(jù)寫入輸出OUT端口,同時讀取輸入IN端口數(shù)據(jù)寫入輸入IN緩沖區(qū),并繼續(xù)步驟(iv);(iii)如果是,則進行超時處理,將相應(yīng)的端口關(guān)閉,并繼續(xù)步驟(iv);(iv)將數(shù)據(jù)寫入到端子板第一 UART接口的發(fā)送緩沖區(qū);(V)將數(shù)據(jù)寫入到端子板第二 UART接口的發(fā)送緩沖區(qū),并返回步驟(22);(22)當(dāng)定時器超時時啟動定時器中斷服務(wù),將從所述的端子板第一 UART接口所接收到的數(shù)據(jù)存儲于相應(yīng)的緩沖區(qū)中;(23)判斷是否已經(jīng)配置數(shù)據(jù)起始幀;(24)如果是,則設(shè)置更新模式有效;(25)判斷接收到的數(shù)據(jù)是否為OUT數(shù)據(jù)幀;(26)如果是,則設(shè)置正常模式有效;
(27)判斷是否為配置模式;(28)如果是,則進行端子板配置操作處理;如果否,則進行數(shù)據(jù)緩存和轉(zhuǎn)發(fā)操作處理;該進行端子板配置操作處理,包括以下步驟:(i)判斷是否為配置數(shù)據(jù)起始幀;(ii)如果是,則繼續(xù)步驟(iii);如果否,則繼續(xù)步驟(viii);(iii)初始化變量;(iv)將配置信息進行緩存處理;(V)向所述的端子板第一 UART接口進行應(yīng)答回復(fù);(Vi)清空所述的端子板第二 UART接口的數(shù)據(jù);(vii)發(fā)送配置數(shù)據(jù)起始幀到所述 的端子板第二 UART接口,并返回步驟(29);(viii)將配置信息進行緩存處理;(ix)向所述的端子板第一 UART接口進行應(yīng)答回復(fù);(X)判斷是否配置數(shù)據(jù);(Xi)如果是,則配置數(shù)據(jù)緩沖標(biāo)志有效;(Xii)接收所述的端子板第二 UART接口的數(shù)據(jù);(Xiii)判斷是否數(shù)據(jù)接收成功且與下行通信的CRC校驗標(biāo)志位有效且配置數(shù)據(jù)緩沖區(qū)數(shù)據(jù)有效;(xiv)如果否,則繼續(xù)步驟(xvii);如果是,則判斷上一幀數(shù)據(jù)是配置數(shù)據(jù)起始幀或者擦除標(biāo)志完成,且上一幀數(shù)據(jù)下行系統(tǒng)已經(jīng)接收到;(XV)如果是,則繼續(xù)步驟(xvi);如果否,則繼續(xù)步驟(xvii);(xvi)發(fā)送配置數(shù)據(jù)幀至所述的端子板第二 UART接口,并返回步驟(29);(xvii)發(fā)送重發(fā)幀至所述的端子板第二 UART接口,并返回步驟(29);該進行數(shù)據(jù)緩存和轉(zhuǎn)發(fā)操作處理,包括以下步驟:(I)判斷是否為數(shù)據(jù)起始幀;(II)如果是,則繼續(xù)步驟(III);如果否,則繼續(xù)步驟(V);(III)將端子板的信息數(shù)據(jù)進行緩存處理;(IV)向所述的端子板第一 UART接口進行應(yīng)答回復(fù),并繼續(xù)步驟(XI);(V)判斷發(fā)送緩沖區(qū)是否有效;(VI)如果是,則繼續(xù)步驟(VII);如果否,則繼續(xù)步驟(IX);(VII)回復(fù)發(fā)送緩沖區(qū)數(shù)據(jù)至所述的端子板第一 UART接口 ;(VIII)清除發(fā)送緩沖區(qū)有效標(biāo)志,并繼續(xù)步驟(XI);(IX)將端子板輸入IN數(shù)據(jù)進行緩存處理;(X)向所述的端子板第一 UART接口進行應(yīng)答回復(fù),并繼續(xù)步驟(XI);(XI)判斷是否成功接收所述的端子板第一 UART接口的數(shù)據(jù)且CRC校驗標(biāo)志位有效;(XII)如果是,則繼續(xù)步驟(XIII);如果否,則繼續(xù)步驟(XVII);(XIII)清除錯誤計數(shù) ErrCnt ;(XIV)判斷退出報警EXT_ALARM標(biāo)志是否有效;(XV)如果是,則繼續(xù)步驟(XXI);如果否,則回復(fù)發(fā)送緩沖區(qū)數(shù)據(jù)至所述的端子板第一 UART 接口 ;(XVI)清除發(fā)送緩沖區(qū)有效標(biāo)志,并返回上述步驟(29);(XVII)判斷錯誤計數(shù)ErrCnt是否小于系統(tǒng)預(yù)設(shè)的最大錯誤數(shù);該實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法中的最大錯誤數(shù)為100 ;(XVIII)如果否,則繼續(xù)步驟(XXI);如果是,則繼續(xù)步驟(XIV);(XIX)將錯誤計數(shù)ErrCnt增加I ;(XX)將重發(fā)幀回復(fù)至所述的端子板第一 UART接口,并返回上述步驟(29);(XXI)將數(shù)據(jù)起始幀回復(fù)至所述的端子板第一 UART接口,并返回上述步驟(29)。
(29)將定時器變量清零。在實際使用當(dāng)中,本發(fā)明的整個系統(tǒng)采用DB9芯線連接,連線較少,成本較低。其中采用xilinx spantar6系列的FPGA芯片,整個系統(tǒng)的數(shù)據(jù)處理以及通信協(xié)議實現(xiàn)均由FPGA完成,集成度較高。請再參閱圖5所示,各端子板之間采用級聯(lián)方式進行擴展,采用差分串行總線通信,以數(shù)據(jù)幀的方式進行傳輸。再請參閱圖8所示,其為運動控制卡FPGA邏輯功能模塊框圖,其中,Uart IP負責(zé)建立microblaze處理器與PC系統(tǒng)之間的數(shù)據(jù)傳輸以及建立控制卡與端子板之間的數(shù)據(jù)傳輸,Timer IP實現(xiàn)定時中斷。整個架構(gòu)設(shè)計簡單,占用資源較少,易于實現(xiàn)。再請參閱圖9所示,其為端子板FPGA邏輯功能模塊框圖,其中,架構(gòu)與運動控制卡架構(gòu)相同,比運動控制卡多一個Uart IP0Uart IP O負責(zé)接收運動控制卡的數(shù)據(jù)傳輸,UartIP I負責(zé)下行擴展端子板的數(shù)據(jù)通信。與運動控制卡不同的是,運動控制卡采用定時中斷,而端子板采樣Uart IP的接收中斷,所有的數(shù)據(jù)傳輸均有控制卡發(fā)起,端子板負責(zé)接收并作出相應(yīng)的響應(yīng)。本發(fā)明的方法中所采用的數(shù)據(jù)幀通信協(xié)議請見圖10所示,其中,數(shù)據(jù)幀采用16字節(jié)等長數(shù)據(jù)幀傳輸,攜帶CRC等校驗信息,具有重發(fā)機制,保證數(shù)據(jù)的有效、可靠傳輸。控制卡和端子板均采用4層板布局布線,具有較強的抗干擾能力。運動控制卡和端子板中均使用軟核處理器microblaze負責(zé)通信和相應(yīng)數(shù)據(jù)處理,代碼使用C語言編寫,其通信過程請參閱圖11所示。其中,每塊端子板應(yīng)用程序中主動管理自己的本身1/0,中斷服務(wù)程序負責(zé)上下行通信。中斷服務(wù)程序先接收來自上行串行端口的數(shù)據(jù),將其寫入共享內(nèi)存區(qū)域,然后根據(jù)幀格式從內(nèi)存中讀取相應(yīng)數(shù)據(jù)作為響應(yīng)幀回復(fù)上行端口 ;再接著接收下行串行端口的數(shù)據(jù),寫入共享內(nèi)存區(qū)域,然后從共享區(qū)域內(nèi)讀取相應(yīng)數(shù)據(jù)發(fā)送到下行串行端口,中斷服務(wù)程序結(jié)束。數(shù)據(jù)傳輸采用IOMHz串口傳輸速率,以16字節(jié)數(shù)據(jù)幀的形式傳輸,既保證了加工
要求,又能保證較高的數(shù)據(jù)通信周期,其數(shù)據(jù)幀格式 如下表所示:
權(quán)利要求
1.一種數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu),包括運動控制卡、端子板和數(shù)個擴展端子板,所述的運動控制卡與外部計算機相連接,且所述的運動控制卡、端子板和數(shù)個擴展端子板依次串接,其特征在于,所述的運動控制卡上承載有主機接口和UART接口,所述的端子板上承載有端子板第一 UART接口和端子板第二 UART接口,所述的各個擴展端子板上均承載有各自的擴展端子板第一 UART接口和擴展端子板第二 UART接口,所述的運動控制卡的主機接口與外部計算機相連接,且該運動控制卡的UART接口與所述的端子板第一 UART接口相連接,所述的端子板第二 UART接口與一擴展端子板上的擴展端子板第一 UART接口相連接,該擴展端子板上的擴展端子板第二UART接口與其余的擴展端子板依次串接。
2.根據(jù)權(quán)利要求1所述的數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu),其特征在于,所述的運動控制卡的主機接口為PCI金手指插條。
3.根據(jù)權(quán)利要求1或2所述的數(shù)控系統(tǒng)中基于異步串行總線實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu),其特征在于,所述的UART接口和端子板第一 UART接口均為高速UART 接口。
4.一種利用權(quán)利要求1所述的電路結(jié)構(gòu)實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法,其特征在于,所述的方法包括運動控制卡進行數(shù)據(jù)接收和發(fā)送處理操作、端子板進行數(shù)據(jù)接收響應(yīng)和轉(zhuǎn)發(fā)數(shù)據(jù)處理操作,所述的運動控制卡進行數(shù)據(jù)接收和發(fā)送處理操作,包括以下步驟: (11)所述的運動控制卡進行初始化配置并設(shè)定定時器中斷; (12)當(dāng)定時器超時時啟動定時器中斷服務(wù); (13)判斷是否收到外部計算機發(fā)送來的數(shù)據(jù)幀; (14)如果未收到,則發(fā) 送重發(fā)幀,并結(jié)束;如果接收到,則判斷CRC校驗是否正確; (15)如果CRC校驗不正確,則發(fā)送重發(fā)幀,并結(jié)束;如果CRC校驗正確,則判斷上一次通 目是否正常; (16)如果不正常,則結(jié)束;如果正常,則讀取緩沖控制寄存器,并進行緩沖控制處理操作; (17)查找命令幀地址映射表; (18)對命令巾貞進行打包; (19)設(shè)置重發(fā)幀為命令幀,并發(fā)送至所述的端子板; 所述的端子板進行數(shù)據(jù)接收響應(yīng)和轉(zhuǎn)發(fā)數(shù)據(jù)處理操作,包括以下步驟: (21)所述的端子板進行初始化配置并設(shè)置定時器中斷初始化; (22)當(dāng)定時器超時時啟動定時器中斷服務(wù),將從所述的端子板第一UART接口所接收到的數(shù)據(jù)存儲于相應(yīng)的緩沖區(qū)中; (23)判斷是否已經(jīng)配置數(shù)據(jù)起始幀; (24)如果是,則設(shè)置更新模式有效; (25)判斷接收到的數(shù)據(jù)是否為OUT數(shù)據(jù)幀; (26)如果是,則設(shè)置正常模式有效; (27)判斷是否為配置模式; (28)如果是,則進行端子板配置操作處理;如果否,則進行數(shù)據(jù)緩存和轉(zhuǎn)發(fā)操作處理;(29)將定時器變量清零。
5.根據(jù)權(quán)利要求4所述的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法,其特征在于,所述的數(shù)據(jù)幀為數(shù)據(jù)起始幀、脈沖數(shù)據(jù)幀、OUT幀或者擴展數(shù)據(jù)幀。
6.根據(jù)權(quán)利要求5所述的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法,其特征在于,所述的進行初始化配置并設(shè)定定時器中斷,包括以下步驟: (111)所述的運動控制卡讀取配置數(shù)據(jù); (112)所述的運動控制卡建立映射表; (113)設(shè)置重發(fā)幀為初始幀; (114)初始化定時器的超時時間; (115)開啟定時器中斷; (116)所述的運動控制卡進行數(shù)據(jù)映射表計算。
7.根據(jù)權(quán)利要求6所述的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法,其特征在于,所述的進行緩沖控制處理操作,包括以下步驟: (161)所述的運動控制卡判斷是否有緩沖控制; (162)如果有緩沖控制,則繼續(xù)步驟(163);如果沒有緩沖控制,則繼續(xù)步驟(165); (163)判斷端子板脈沖數(shù)據(jù)幀的FIFO隊列是否滿; (164)如果滿,則發(fā)送OUT幀,并返回上述步驟(17);如果不滿,則發(fā)送脈沖數(shù)據(jù)幀,并返回上述步驟(17); (165)判斷端子板脈沖數(shù)據(jù)幀的FIFO隊列是否空; (166)如果空,則發(fā)送脈沖數(shù)據(jù)幀,并返回上述步驟(17);如果不空,則發(fā)送OUT幀,并返回上述步驟(17)。
8.根據(jù)權(quán)利要求5所述的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法,其特征在于,所述的端子板進行初始化配置并設(shè)置定時器中斷初始化,包括以下步驟: (211)開啟串口中斷初始化; (212)判斷是否處于更新模式; (213)如果是,則進行配置更新處理操作; (214)如果否,則進行數(shù)據(jù)緩存轉(zhuǎn)發(fā)處理操作。
9.根據(jù)權(quán)利要求8所述的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法,其特征在于,所述的進行配置更新處理操作,包括以下步驟: (2131)判斷閃存擦除是否未完成且標(biāo)識ID是本系統(tǒng); (2132)如果是,則擦除閃存; (2133)判斷是否閃存擦除完成且配置緩沖區(qū)有數(shù)據(jù); (2134)如果是,則繼續(xù)步驟(2135);如果否,則繼續(xù)步驟(2137); (2135)將配置緩沖區(qū)中的數(shù)據(jù)寫入到閃存中,再進行讀回并比較是否與緩沖區(qū)中的數(shù)據(jù)是否相同; (2136)如果否,則設(shè)置配置錯誤標(biāo)志有效;(2137)判斷配置數(shù)據(jù)緩沖區(qū)的地址是否是擦除的首地址且配置沒有錯誤; (2138)如果是,則設(shè)置配置完成標(biāo)志有效并返回步驟(22);否則直接返回步驟(22)。
10.根據(jù)權(quán)利要求8所述的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法,其特征在于,所述的進行數(shù)據(jù)緩存轉(zhuǎn)發(fā)處理操作,包括以下步驟: (2141)判斷是否中斷超時; (2142)如果否,則取輸出OUT緩沖區(qū)的數(shù)據(jù)寫入輸出OUT端口,同時讀取輸入IN端口數(shù)據(jù)寫入輸入IN緩沖區(qū),并繼續(xù)步驟(2144); (2143)如果是,則進行超時處理,將相應(yīng)的端口關(guān)閉,并繼續(xù)步驟(2144); (2144)將數(shù)據(jù)寫入到端子板第一UART接口的發(fā)送緩沖區(qū); (2145)將數(shù)據(jù)寫入到端子板第二UART接口的發(fā)送緩沖區(qū),并返回步驟(22)。
11.根據(jù)權(quán)利要求5所述的實現(xiàn)數(shù)控系統(tǒng) 中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法,其特征在于,所述的進行端子板配置操作處理,包括以下步驟: (281)判斷是否為配置數(shù)據(jù)起始幀; (282)如果是,則繼續(xù)步驟(283);如果否,則繼續(xù)步驟(288); (283)初始化變量; (284)將配置信息進行緩存處理; (285)向所述的端子板第一UART接口進行應(yīng)答回復(fù); (286)清空所述的端子板第二UART接口的數(shù)據(jù); (287)發(fā)送配置數(shù)據(jù)起始幀到所述的端子板第二UART接口,并返回步驟(29); (288)將配置信息進行緩存處理; (289)向所述的端子板第一UART接口進行應(yīng)答回復(fù); (2810)判斷是否配置數(shù)據(jù); (2811)如果是,則配置數(shù)據(jù)緩沖標(biāo)志有效; (2812)接收所述的端子板第二UART接口的數(shù)據(jù); (2813)判斷是否數(shù)據(jù)接收成功且與下行通信的CRC校驗標(biāo)志位有效且配置數(shù)據(jù)緩沖區(qū)數(shù)據(jù)有效; (2814)如果否,則繼續(xù)步驟(2817);如果是,則判斷上一幀數(shù)據(jù)是配置數(shù)據(jù)起始幀或者擦除標(biāo)志完成,且上一幀數(shù)據(jù)下行系統(tǒng)已經(jīng)接收到; (2815)如果是,則繼續(xù)步驟(2816);如果否,則繼續(xù)步驟(2817); (2816)發(fā)送配置數(shù)據(jù)幀至所述的端子板第二UART接口,并返回步驟(29); (2817)發(fā)送重發(fā)幀至所述的端子板第二UART接口,并返回步驟(29)。
12.根據(jù)權(quán)利要求5所述的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法,其特征在于,所述的進行數(shù)據(jù)緩存和轉(zhuǎn)發(fā)操作處理,包括以下步驟: (291)判斷是否為數(shù)據(jù)起始幀; (292)如果是,則繼續(xù)步驟(293);如果否,則繼續(xù)步驟(295); (293)將端子板的信息數(shù)據(jù)進行緩存處理; (294)向所述的端子板第一UART接口進行應(yīng)答回復(fù),并繼續(xù)步驟(2911); (295)判斷發(fā)送緩沖區(qū)是否有效;(296)如果是,則繼續(xù)步驟(297);如果否,則繼續(xù)步驟(299); (297)回復(fù)發(fā)送緩沖區(qū)數(shù)據(jù)至所述的端子板第一UART接口 ; (298)清除發(fā)送緩沖區(qū)有效標(biāo)志,并繼續(xù)步驟(2911); (299)將端子板輸入IN數(shù)據(jù)進行緩存處理; (2910)向所述的端子板第一UART接口進行應(yīng)答回復(fù),并繼續(xù)步驟(2911);(2911)判斷是否成功接收所述的端子板第一UART接口的數(shù)據(jù)且CRC校驗標(biāo)志位有效; (2912)如果是,則繼續(xù)步驟(2913);如果否,則繼續(xù)步驟(2917); (2913)清除錯誤計數(shù)ErrCnt; (2914)判斷退出報警EXT_ALARM標(biāo)志是否有效; (2915)如果是,則繼續(xù)步驟(2921);如果否,則回復(fù)發(fā)送緩沖區(qū)數(shù)據(jù)至所述的端子板第一UART 接口 ; (2916)清除發(fā)送緩沖區(qū)有效標(biāo)志, 并返回上述步驟(29); (2917)判斷錯誤計數(shù)ErrCnt是否小于系統(tǒng)預(yù)設(shè)的最大錯誤數(shù); (2918)如果否,則繼續(xù)步驟(2921);如果是,則繼續(xù)步驟(2919); (2919)將錯誤計數(shù)ErrCnt增加I; (2920)將重發(fā)幀回復(fù)至所述的端子板第一UART接口,并返回上述步驟(29);(2921)將數(shù)據(jù)起始幀回復(fù)至所述的端子板第一UART接口,并返回上述步驟(29)。
13.根據(jù)權(quán)利要求12所述的實現(xiàn)數(shù)控系統(tǒng)中基于異步串行總線進行運動控制卡與端子板之間數(shù)據(jù)通信的方法,其特征在于,所述的最大錯誤數(shù)為100。
全文摘要
本發(fā)明涉及一種運動控制卡與端子板間實現(xiàn)數(shù)據(jù)通信的電路結(jié)構(gòu),運動控制卡的主機接口與外部計算機連接,運動控制卡的UART接口與端子板第一UART接口連接,端子板第二UART接口與一擴展端子板上的擴展端子板第一UART接口連接,擴展端子板上的擴展端子板第二UART接口與其余的擴展端子板依次串接。本發(fā)明還涉及一種利用該電路結(jié)構(gòu)實現(xiàn)運動控制卡與端子板之間數(shù)據(jù)通信的方法。采用該種運動控制卡與端子板之間數(shù)據(jù)通信的電路結(jié)構(gòu)及方法,連線較少,成本較低,數(shù)據(jù)處理以及通信協(xié)議實現(xiàn)集成度較高,采用等長數(shù)據(jù)幀傳輸,攜帶校驗信息,具有重發(fā)機制,數(shù)據(jù)傳輸有效可靠,性能好,設(shè)計簡單,可靠性高,易于擴展,工作性能穩(wěn)定可靠、適用范圍較為廣泛。
文檔編號G05B19/042GK103235533SQ20131009867
公開日2013年8月7日 申請日期2013年3月26日 優(yōu)先權(quán)日2013年3月26日
發(fā)明者王少陽, 鄧美龍, 汪定軍, 湯同奎, 鄭之開 申請人:上海維宏電子科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
桂林市| 丰都县| 旅游| 大同县| 台北县| 宁乡县| 涪陵区| 南丰县| 扶风县| 荣昌县| 乌兰察布市| 河东区| 安达市| 黔西| 肇庆市| 寿宁县| 邻水| 太原市| 乐平市| 仲巴县| 浦东新区| 庆云县| 青州市| 茌平县| 根河市| 怀化市| 闽清县| 北辰区| 定襄县| 雅江县| 社会| 大方县| 长海县| 咸宁市| 宁城县| 岢岚县| 遵义县| 连城县| 介休市| 昭觉县| 正镶白旗|