專利名稱:一種自校驗(yàn)串行總線控制器和自校驗(yàn)串行總線實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微波領(lǐng)域,特別涉及一種自校驗(yàn)串行總線控制器,還涉及一種自校驗(yàn)串行總線實(shí)現(xiàn)方法。
背景技術(shù):
微波測(cè)量儀器由于工作在幾Hz到幾十甚至上百GHz的微波頻段,并且有脈沖、連續(xù)波等多種工作狀態(tài),內(nèi)部微波器件和微波單元的電磁輻射比較強(qiáng)且?guī)挶容^大,同時(shí)微波測(cè)試儀器經(jīng)常用于工業(yè)化測(cè)試環(huán)境中,外界的電磁干擾比較強(qiáng)。目前微波測(cè)試儀器大都采用工控機(jī)模塊作為主控CPU實(shí)現(xiàn)對(duì)儀器內(nèi)部各功能板的控制,工控機(jī)模塊一般提供標(biāo)準(zhǔn)的PCI總線、ISA總線或PC1- E總線,然后在儀器母板上通過設(shè)計(jì)SPI總線控制器,把并行總線轉(zhuǎn)為SPI串行總線。各功能板上通過設(shè)計(jì)SPI總線譯碼再轉(zhuǎn)為對(duì)每塊功能板上每個(gè)電路功能單元的控制。在儀器的設(shè)計(jì)制造中,一種可靠的總線對(duì)于保證儀器內(nèi)部功能板與主控CPU的可靠通信,對(duì)于儀器的正常運(yùn)行和提高儀器的可靠性非常重要。傳統(tǒng)的微波測(cè)量儀器的內(nèi)部總線協(xié)議無論是并行還是串行方式,都無法保證數(shù)據(jù)從主控CPU到微波測(cè)量儀器母板各功能板目標(biāo)單元閉環(huán)可靠傳輸。
發(fā)明內(nèi)容
本發(fā)明提出了一種自校驗(yàn)串行總線控制器,解決了現(xiàn)有的微波測(cè)量儀器內(nèi)部總線無法保證數(shù)據(jù)從主控CPU到儀器母板各功能板目標(biāo)單元閉環(huán)可靠傳輸?shù)膯栴}。本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:一種自校驗(yàn)串行總線控制器,包括:時(shí)鐘產(chǎn)生模塊、串行總線自測(cè)試模塊、狀態(tài)線監(jiān)測(cè)模塊、串行總線設(shè)置和控制模塊、并行總線轉(zhuǎn)換接口、同步異步轉(zhuǎn)換模塊、串行地址FIFO緩存模塊、串行數(shù)據(jù)FIFO緩存模塊、串行總線協(xié)議解碼實(shí)現(xiàn)與數(shù)據(jù)校驗(yàn)單元和中斷線擴(kuò)展模塊;所述時(shí)鐘產(chǎn)生模塊接收外部參考時(shí)鐘,其控制端由串行總線設(shè)置和控制模塊設(shè)置參考時(shí)鐘的整數(shù)倍倍頻或整數(shù)倍分頻,產(chǎn)生不同速率的串行總線;所述串行總線自測(cè)試模塊內(nèi)部包括讀寫寄存器,通過訪問讀寫寄存器檢測(cè)串行總線內(nèi)部以及并行總線轉(zhuǎn)換接口工作是否正常,并針對(duì)不同串行總線的速率做速率測(cè)試;所述狀態(tài)線監(jiān)測(cè)模塊監(jiān)測(cè)狀態(tài)線的變化,其輸出信號(hào)為低電平表示狀態(tài)線正常,當(dāng)其輸出信號(hào)變?yōu)楦唠娖綍r(shí),表示串行總線數(shù)據(jù)傳輸有錯(cuò),立即通過中斷的方式通知主控CPU;所述串行總線設(shè)置和控制模塊包括設(shè)置寄存器,用于設(shè)置串行總線速率、串行地址位數(shù)、串行數(shù)據(jù)位數(shù)、數(shù)據(jù)高位/低位先出選擇、中斷狀態(tài)以及屏蔽清除;所述并行總線轉(zhuǎn)換接口完成對(duì)前端并行總線的接口和協(xié)議解碼;所述同步異步轉(zhuǎn)換模塊將并行總線的時(shí)鐘和后端串行總線的速率轉(zhuǎn)換為同步;所述串行地址FIFO緩存模塊和串行數(shù)據(jù)FIFO緩存模塊分別存儲(chǔ)多對(duì)串行地址和串行數(shù)據(jù);所述串行總線協(xié)議解碼實(shí)現(xiàn)與數(shù)據(jù)校驗(yàn)單元把所述串行地址FIFO緩存模塊中的串行地址和所述串行數(shù)據(jù)FIFO緩存模 塊中的串行數(shù)據(jù)按串行總線的協(xié)議發(fā)送出去,完成讀寫訪問,并校驗(yàn)其中的讀寫數(shù)據(jù)位??蛇x地,所述時(shí)鐘產(chǎn)生模塊、串行總線自測(cè)試模塊、狀態(tài)線監(jiān)測(cè)模塊、串行總線設(shè)置和控制模塊、并行總線轉(zhuǎn)換接口、同步異步轉(zhuǎn)換模塊、串行地址FIFO緩存模塊、串行數(shù)據(jù)FIFO緩存模塊、串行總線協(xié)議解碼實(shí)現(xiàn)與數(shù)據(jù)校驗(yàn)單元和中斷線擴(kuò)展模塊通過CPLD實(shí)現(xiàn)??蛇x地,所述串行總線自測(cè)試模塊包括多個(gè)讀寫寄存器??蛇x地,所述串行總線設(shè)置和控制模塊包括多個(gè)設(shè)置寄存器。本發(fā)明還提出了一種自校驗(yàn)串行總線實(shí)現(xiàn)方法,包括以下步驟:通過串行總線設(shè)置和控制模塊產(chǎn)生參考時(shí)鐘的整數(shù)倍倍頻或整數(shù)倍分頻,由時(shí)鐘產(chǎn)生模塊產(chǎn)生不同速率的串行總線;通過訪問串行總線自測(cè)試模塊內(nèi)部的讀寫寄存器檢測(cè)串行總線內(nèi)部以及并行總線轉(zhuǎn)換接口工作是否正常,并針對(duì)不同串行總線的速率做速率測(cè)試;通過狀態(tài)線監(jiān)測(cè)模塊監(jiān)測(cè)狀態(tài)線的變化,其輸出信號(hào)為低電平表示狀態(tài)線正常,當(dāng)其輸出信號(hào)變?yōu)楦唠娖綍r(shí),表示串行總線數(shù)據(jù)傳輸有錯(cuò),立即通過中斷的方式通知主控CPU ;通過串行總線設(shè)置和控制模塊內(nèi)部的設(shè)置寄存器設(shè)置串行總線速率、串行地址位數(shù)、串行數(shù)據(jù)位數(shù)、數(shù)據(jù)高位/低位先出選擇、中斷狀態(tài)以及屏蔽清除;通過并行總線轉(zhuǎn)換接口完成對(duì)前端并行的總線的接口和協(xié)議解碼;通過同步異步轉(zhuǎn)換模塊將并行總線的時(shí)鐘和后端串行總線的速率轉(zhuǎn)換為同步;通過串行地址FIFO緩存模塊和串行數(shù)據(jù)FIFO緩存模塊分別存儲(chǔ)多對(duì)串行地址和串行數(shù)據(jù);通過串行總線協(xié)議解碼實(shí)現(xiàn)與數(shù)據(jù)校驗(yàn)單元把所述串行地址FIFO緩存模塊中的串行地址和串行數(shù)據(jù)FIFO緩存模塊中的串行數(shù)據(jù)按串行總線的協(xié)議發(fā)送出去,完成讀寫訪問,并校驗(yàn)其中的讀寫數(shù)據(jù)位??蛇x地,所述串行總線自測(cè)試模塊內(nèi)部包括多個(gè)讀寫寄存器。可選地,所述串行總線設(shè)置和控制模塊內(nèi)部包括多個(gè)設(shè)置寄存器。本發(fā)明的有益效·果是:具有自動(dòng)診錯(cuò)和糾錯(cuò)功能,能夠?qū)崿F(xiàn)微波測(cè)量儀器內(nèi)部主控CPU對(duì)各功能板的可靠控制和數(shù)據(jù)傳輸,保證數(shù)據(jù)的高速傳輸和電路單元的靈活控制,并且功能板上的總線譯碼單元實(shí)現(xiàn)起來非常方便,本發(fā)明的串行總線也可以用作儀器間的互聯(lián)通訊。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明自校驗(yàn)串行總線控制器的電路控制框圖;圖2為本發(fā)明自校驗(yàn)串行總線控制器的寫時(shí)序的時(shí)序圖;圖3為本發(fā)明自校驗(yàn)串行總線控制器的讀時(shí)序的時(shí)序圖;圖4為本發(fā)明自校驗(yàn)串行總線控制器一個(gè)實(shí)施例的電路控制框圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。圖1所示為本發(fā)明自校驗(yàn)串行總線控制器的電路控制框圖。如圖1所示,自校驗(yàn)串行總線控制器100包括:時(shí)鐘產(chǎn)生模塊101、串行總線自測(cè)試模塊102、狀態(tài)線監(jiān)測(cè)模塊103、串行總線設(shè)置和控制模塊104、并行總線轉(zhuǎn)換接口 105、同步異步轉(zhuǎn)換模塊106、串行地址FIFO緩存模塊107、串行數(shù)據(jù)FIFO緩存模塊108、串行總線協(xié)議解碼實(shí)現(xiàn)與數(shù)據(jù)校驗(yàn)單元109和中斷線擴(kuò)展模塊110。時(shí)鐘產(chǎn)生模塊101接收外部參考時(shí)鐘300,其控制端由串行總線設(shè)置和控制模塊104設(shè)置參考時(shí)鐘300的整數(shù)倍倍頻或整數(shù)倍分頻,產(chǎn)生不同速率的串行總線600,以滿足不同器件的訪問需求;串行總線自測(cè)試模塊102內(nèi)部包括讀寫寄存器,通過訪問讀寫寄存器檢測(cè)串行總線600內(nèi)部以及并行總線轉(zhuǎn)換接口 105工作是否正常,并針對(duì)不同串行總線的速率做速率測(cè)試,優(yōu)選地,上述讀寫寄存器的數(shù)量是多個(gè);狀態(tài)線監(jiān)測(cè)模塊103監(jiān)測(cè)狀態(tài)線的變化,其輸出信號(hào)為低電平表示狀態(tài)線正常,當(dāng)其輸出信號(hào)變?yōu)楦唠娖綍r(shí),表示串行總線600數(shù)據(jù)傳輸有錯(cuò),立即通過中斷的方式通知主控CPU ;串行總線設(shè)置和控制模塊104包括設(shè)置寄存器,用于設(shè)置串行總線速率、串行地址位數(shù)、串行數(shù)據(jù)位數(shù)、數(shù)據(jù)高位/低位先出選擇、中斷狀態(tài)以及屏蔽清除,優(yōu)選地,上述設(shè)置寄存器的數(shù)量是多個(gè);并行總線轉(zhuǎn)換接口 105完成對(duì)前端并行總線500的接口和協(xié)議解碼,如果前端接的是PCI總線則完成PCI接口,如果前端接的是ISA總線,則完成ISA接口 ;同步異步轉(zhuǎn)換模塊106將并行總線500的時(shí)鐘和后端串行總線600的速率轉(zhuǎn)換為同步;串行地址FIFO緩存模塊107和串行數(shù)據(jù)FIFO緩存模塊108分別存儲(chǔ)多對(duì)串行地址和串行數(shù)據(jù),能夠使并行總線500 —次寫入多套的地址數(shù)據(jù),以消除零散訪問的低效率;串行總線協(xié)議解碼實(shí)現(xiàn)與數(shù)據(jù)校驗(yàn)單元109把串行地址FIFO緩存模塊107中的串行地址和串行數(shù)據(jù)FIFO緩存模塊108中的串行數(shù)據(jù)按串行總線600的協(xié)議發(fā)送出去,完成讀寫訪問,并校驗(yàn)其中的讀寫數(shù)據(jù)位。串行總線協(xié)議主要包括串行總線信號(hào)的定義和各串行輸入輸出信號(hào)有關(guān)的讀寫時(shí)序。自校驗(yàn)串行總線的信號(hào)定義共8個(gè),位寬都為I位,分別為串行時(shí)鐘線(SerClock),寫數(shù)據(jù)線(WriteData),地址觸發(fā)線(Add_strobe),數(shù)據(jù)觸發(fā)線(Data_strobe),讀數(shù)據(jù)線(ReadData),讀時(shí)鐘線(SReadClock),狀態(tài)線(Status),中斷請(qǐng)求線(InterruptReq)。串行時(shí)鐘線(SerClock)由時(shí)鐘產(chǎn)生模塊101根據(jù)用戶的設(shè)置產(chǎn)生,可以為輸入的參考時(shí)鐘300的任意倍數(shù),該時(shí)鐘為自校驗(yàn)串行總線控制器100的輸出時(shí)鐘,只要對(duì)外部設(shè)備有讀寫訪問時(shí),就會(huì)有效。寫數(shù)據(jù)線(WriteData)在寫訪問的時(shí)候,在地址相輸出串行地址,在數(shù)據(jù)相輸出串行數(shù)據(jù)。地址觸發(fā)線(AdcLstiObe)用于地址相完成時(shí)輔助串行地址鎖存,以使總線接口的譯碼部分開始進(jìn)行譯碼。數(shù)據(jù)觸發(fā)線(Data_stix)be)用于數(shù)據(jù)相完成時(shí),鎖存串行數(shù)據(jù)。讀數(shù)據(jù)線(ReadData)在讀訪問時(shí),在數(shù)據(jù)相期間逐位返回讀取的數(shù)據(jù),在地址相期間逐位返回輸出的串行地址以進(jìn)行回傳校驗(yàn)。讀時(shí)鐘線(SReadClock)由末端被訪問的電路單元返回,實(shí)際上是串行時(shí)鐘線(SerClock)延后一個(gè)時(shí)鐘后的輸出,如果該電路單元不支持讀訪問,則無串行時(shí)鐘線(SerClock)輸出,自校驗(yàn)串行總線控制器100則收不到讀數(shù)據(jù)時(shí)鐘。狀態(tài)線(Status)用于被訪問電路單元或設(shè)備向自校驗(yàn)串行總線控制器100報(bào)告總線狀態(tài),串行總線或被訪問電路單元可以正常訪問時(shí)該信號(hào)線處于低電平,當(dāng)有錯(cuò)誤時(shí)將該信號(hào)線置高,自校驗(yàn)串行總線 控制器100就會(huì)向主控CPU報(bào)告錯(cuò)誤發(fā)生。中斷請(qǐng)求線(InterruptReq)用于后端的電路單元或設(shè)備通過中斷的方式通知主控CPU迅速中斷當(dāng)前的運(yùn)行,進(jìn)行讀數(shù)據(jù)等需要緊急處理的任務(wù),該中斷線可根據(jù)后面設(shè)備中斷源的多少擴(kuò)展個(gè)數(shù)。串行總線的時(shí)序主要是讀寫時(shí)序:讀時(shí)序用于主控CPU從儀器母板的各功能板讀數(shù)據(jù);寫時(shí)序主要用于主控CPU往儀器母板的各功能板寫控制數(shù)據(jù)。串行總線的地址個(gè)數(shù)和數(shù)據(jù)個(gè)數(shù)通過串行總線內(nèi)部的設(shè)置寄存器都設(shè)為8位的情況下,寫時(shí)序和讀時(shí)序分別見圖2和圖3。如圖2所示,寫時(shí)序分為地址相和數(shù)據(jù)相兩部分時(shí)序,在地址相中每個(gè)時(shí)鐘周期寫數(shù)據(jù)線(WriteData)輸出一個(gè)串行地址數(shù)據(jù),后端所接的電路單元在每個(gè)串行時(shí)鐘的上升沿鎖存串行地址,當(dāng)所有串行地址輸出完后,地址觸發(fā)線(Add_strobe)輸出一個(gè)地址觸發(fā)鎖存信號(hào),地址相完成,串行總線所接電路單元鎖存完地址并進(jìn)行地址譯碼,寫數(shù)據(jù)線(WriteData)繼續(xù)串行輸出數(shù)據(jù),把8位的數(shù)據(jù)傳輸完后,數(shù)據(jù)觸發(fā)線(Data_strobe)發(fā)出數(shù)據(jù)觸發(fā)鎖存信號(hào),與前面的譯碼后的地址共同鎖存串行數(shù)據(jù),完成了寫時(shí)序。在整個(gè)寫時(shí)序的過程中讀數(shù)據(jù)線(ReadData)用于從電路單元返回收到的串行地址和串行數(shù)據(jù),自校驗(yàn)串行總線控制器在寫時(shí)序的每個(gè)時(shí)鐘周期內(nèi)通過這種方式對(duì)發(fā)出的數(shù)據(jù)進(jìn)行逐位的校驗(yàn),從而保證了串行總線傳輸?shù)目煽啃?。串行總線的這種校驗(yàn)方式對(duì)發(fā)出的地址和數(shù)據(jù)每位都進(jìn)行校驗(yàn),不同于其它總線所采用的奇偶校驗(yàn)方式,從而保證了數(shù)據(jù)傳輸?shù)慕^對(duì)可靠。如圖3所示,讀時(shí)序同樣也分為地址相和數(shù)據(jù)相兩部分時(shí)序,地址相期間寫數(shù)據(jù)線(WriteData)串行輸出8個(gè)地址位,8個(gè)時(shí)鐘周期后地址觸發(fā)線(Add_strobe)輸出地址鎖存脈沖,后端所接的電路單元完成地址鎖存和譯碼,數(shù)據(jù)觸發(fā)線(Data_stix)be)與譯碼后的地址數(shù)據(jù)一起鎖存所接電路單元的并行數(shù)據(jù),緊接著連續(xù)8個(gè)串行時(shí)鐘驅(qū)動(dòng)移位寄存器輸出8位的串行數(shù)據(jù),自校驗(yàn)串行總線控制器接收鎖存串行數(shù)據(jù),再轉(zhuǎn)到所接并行總線上。為保證讀時(shí)序過程中的數(shù)據(jù)全校驗(yàn),自校驗(yàn)串行總線控制器在讀時(shí)序的數(shù)據(jù)相期間同步把接收到的串行數(shù)據(jù)通過寫數(shù)據(jù)線(WriteData)輸出到末端電路單元,末端電路單元的串行數(shù)據(jù)比較器把發(fā)送的數(shù)據(jù)和接收到的數(shù)據(jù)來比較驗(yàn)證串行總線傳輸是否有誤。
為了更詳細(xì)地說明本發(fā)明的技術(shù)方案,下面給出一個(gè)具體實(shí)施例。在微波測(cè)量儀器中,如圖4所示,主控CPU200采用PCI總線的ETX模塊(例如控創(chuàng)ETX -PM/1.0), PCI總線接自校驗(yàn)串行總線控制器100,自校驗(yàn)串行總線控制器100后端串行總線600接母板400,母板400所插的功能板通過自校驗(yàn)串行總線控制器100與主控CPU200通信,例如母板400所插的功能板包括:頻率合成板401、頻率參考板402、微波控制板403和中頻信號(hào)處理板404。本實(shí)施例中,串行時(shí)鐘頻率為40MHz,自校驗(yàn)串行總線控制器100通過CPLD (例如型號(hào)EPM1270T144C5)實(shí)現(xiàn),并按照串行總線的協(xié)議定義并分配好管腳。在CPLD內(nèi)部采用Verilog硬件描述語言實(shí)現(xiàn)圖1中自校驗(yàn)串行總線控制器100的內(nèi)部各模塊及內(nèi)部邏輯時(shí)序,設(shè)計(jì)實(shí)現(xiàn)串行總線協(xié)議。接PCI接口的部分通過自校驗(yàn)串行總線控制器100內(nèi)部的并行總線轉(zhuǎn)換接口 105實(shí)現(xiàn)PCI總線空間可以訪問的32位的控制寄存器、數(shù)據(jù)寄存器、地址寄存器、中斷寄存器。主控CPU200對(duì)母板400上各功能板的串行總線訪問,轉(zhuǎn)換為對(duì)這些PCI寄存器的訪問。各寄存器內(nèi)部內(nèi)容如下:32位控制寄存器定義為:第O位,高/低位先出選擇;第I位,保留;第2 - 13位,時(shí)鐘分頻;第14位,自測(cè)試;第15位,中斷允許;第16、17位,總線狀態(tài);第18 -31位,保留。32位地址寄存器定義為:第O - 15位,串行地址;第16 - 20位,串行地址位數(shù);第21 - 26位,讀寫串行數(shù)據(jù)位數(shù);第27 - 30位,保留;第31位,讀/寫。母板400所插每個(gè)功能板總線的譯碼通過CPLD實(shí)現(xiàn),采用Verilog硬件編程語言按照上述的協(xié)議定義和讀寫時(shí)序,將自校驗(yàn)串行總線控制器100編寫完成并寫進(jìn)CPLD中,定義好可編程器件的輸入輸出管腳。例如,通過串行總線600設(shè)置頻率合成板401的某個(gè)電路單元,串行地址為0x21,內(nèi)容為0x88。軟件程序首先設(shè)置控制寄存器的各控制項(xiàng),如控制寄存器中的Bit[13..2]=0xl,設(shè)定好串行總線600的頻率為40MHz,設(shè)置Bit [15] =1,允許中斷產(chǎn)生;設(shè)置地址寄存器串行地址位為Bit [15..0] =0x21,串行地址位數(shù)Bit [20..16] =0x10為16位,串行寫數(shù)據(jù)位數(shù)Bit [26..21]=0xl0為16位,置Bit [31]=0xl表示寫操作,把整個(gè)地址寄存器的內(nèi)容寫入地址寄存器,再把0x88寫入數(shù)據(jù)寄存器,CPLD中的自校驗(yàn)串行總線控制器100就會(huì)按圖2的寫時(shí)序先輸出串行地址0x21,緊接鎖存所有地址位,再輸出串行數(shù)據(jù)0x88到串行總線并鎖存,頻率合成板地址單元0x21的內(nèi)容就會(huì)變?yōu)?x88并產(chǎn)生相關(guān)動(dòng)作。串行總線輸出的每一位串行地址和數(shù)據(jù)都會(huì)逐位自校驗(yàn),如果校驗(yàn)出錯(cuò)則會(huì)產(chǎn)生串行總線錯(cuò)誤中斷。如果要讀取頻率合成板401的某個(gè)串行地址為0x24的電路單元中的內(nèi)容,軟件程序首先設(shè)置控制寄存器的各控制項(xiàng),設(shè)置控制寄存器中的Bit[13..2]=0xl,設(shè)定好串行總線的頻率為40MHz,Bit[15]=l,允許中斷產(chǎn)生;設(shè)置地址寄存器串行地址為Bit[15..0] =0x24,串行地址位數(shù)Bit[20..16] =0x10為16位,串行讀數(shù)據(jù)位數(shù)Bit [26..21] =0x10為16位,置Bit [31] =0x0,表示讀操作,再把整個(gè)地址寄存器的內(nèi)容寫入地址寄存器,軟件程序直接讀取數(shù)據(jù)寄存器內(nèi)容就可以了,CPLD中的自校驗(yàn)串行總線控制器100就會(huì)按圖3的讀時(shí)序先輸出串行地址0x24,再輸出讀觸發(fā)信號(hào),頻率合成板地址單元0x24的內(nèi)容就會(huì)直接到數(shù)據(jù)寄存器中了??偩€輸出的每一位串行地址和讀取的數(shù)據(jù)都會(huì)逐位自校驗(yàn),如果校驗(yàn)出錯(cuò)則會(huì)產(chǎn)生串行總線錯(cuò)誤中斷。根據(jù)上述自校驗(yàn)串行總線控制器,本發(fā)明還提出了一種自校驗(yàn)串行總線實(shí)現(xiàn)方法,包括以下步驟:通過串行總線設(shè)置和控制模塊產(chǎn)生參考時(shí)鐘的整數(shù)倍倍頻或整數(shù)倍分頻,由時(shí)鐘產(chǎn)生模塊產(chǎn)生不同速率的串行總線;通過訪問串行總線自測(cè)試模塊內(nèi)部的讀寫寄存器檢測(cè)串行總線內(nèi)部以及并行總線轉(zhuǎn)換接口工作是否正常,并針對(duì)不同串行總線的速率做速率測(cè)試;通過狀態(tài)線監(jiān)測(cè)模塊監(jiān)測(cè)狀態(tài)線的變化,其輸出信號(hào)為低電平表示狀態(tài)線正常,當(dāng)其輸出信號(hào)變?yōu)楦唠娖綍r(shí),表示串行總線數(shù)據(jù)傳輸有錯(cuò),立即通過中斷的方式通知主控CPU;通過串行總線設(shè)置和控制模塊內(nèi)部的設(shè)置寄存器設(shè)置串行總線速率、串行地址位數(shù)、串行數(shù)據(jù)位數(shù)、數(shù)據(jù)高位/低位先出選擇、中斷狀態(tài)以及屏蔽清除;通過并行總線轉(zhuǎn)換接口完成對(duì)前端并行的總線的接口和協(xié)議解碼;通過同步異步轉(zhuǎn)換模塊將并行總線的時(shí)鐘和后端串行總線的速率轉(zhuǎn)換為同步;通過串行地址FIFO緩存模塊和串行數(shù)據(jù)FIFO緩存模塊分別存儲(chǔ)多對(duì)串行地址和串行數(shù)據(jù);通過串行總線協(xié)議解碼實(shí)現(xiàn)與數(shù)據(jù)校驗(yàn)單元把所述串行地址FIFO緩存模塊中的串行地 址和串行數(shù)據(jù)FIFO緩存模塊中的串行數(shù)據(jù)按串行總線的協(xié)議發(fā)送出去,完成讀寫訪問,并校驗(yàn)其中的讀寫數(shù)據(jù)位。
優(yōu)選地,上述自校驗(yàn)串行總線實(shí)現(xiàn)方法中,串行總線自測(cè)試模塊內(nèi)部包括多個(gè)讀寫寄存器;串行總線設(shè)置和控制模塊內(nèi)部包括多個(gè)設(shè)置寄存器。本發(fā)明的自校驗(yàn)串行總線控制器和自校驗(yàn)串行總線實(shí)現(xiàn)方法具有自動(dòng)診錯(cuò)和糾錯(cuò)功能,能夠?qū)崿F(xiàn)微波測(cè)量儀器內(nèi)部主控CPU對(duì)各功能板的可靠控制和數(shù)據(jù)傳輸,保證數(shù)據(jù)的高速傳輸和電路單元的靈活控制,并且功能板上的總線譯碼單元實(shí)現(xiàn)起來非常方便,本發(fā)明的串行總線也可以用作儀器間的互聯(lián)通訊。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、`等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種自校驗(yàn)串行總線控制器,其特征在于,包括:時(shí)鐘產(chǎn)生模塊、串行總線自測(cè)試模塊、狀態(tài)線監(jiān)測(cè)模塊、串行總線設(shè)置和控制模塊、并行總線轉(zhuǎn)換接口、同步異步轉(zhuǎn)換模塊、串行地址FIFO緩存模塊、串行數(shù)據(jù)FIFO緩存模塊、串行總線協(xié)議解碼實(shí)現(xiàn)與數(shù)據(jù)校驗(yàn)單元和中斷線擴(kuò)展模塊; 所述時(shí)鐘產(chǎn)生模塊接收外部參考時(shí)鐘,其控制端由串行總線設(shè)置和控制模塊設(shè)置參考時(shí)鐘的整數(shù)倍倍頻或整數(shù)倍分頻,產(chǎn)生不同速率的串行總線; 所述串行總線自測(cè)試模塊內(nèi)部包括讀寫寄存器,通過訪問讀寫寄存器檢測(cè)串行總線內(nèi)部以及并行總線轉(zhuǎn)換接口工作是否正常,并針對(duì)不同串行總線的速率做速率測(cè)試; 所述狀態(tài)線監(jiān)測(cè)模塊監(jiān)測(cè)狀態(tài)線的變化,其輸出信號(hào)為低電平表示狀態(tài)線正常,當(dāng)其輸出信號(hào)變?yōu)楦唠娖綍r(shí),表示串行總線數(shù)據(jù)傳輸有錯(cuò),立即通過中斷的方式通知主控CPU; 所述串行總線設(shè)置和控制模塊包括設(shè)置寄存器,用于設(shè)置串行總線速率、串行地址位數(shù)、串行數(shù)據(jù)位數(shù)、數(shù)據(jù)高位/低位先出選擇、中斷狀態(tài)以及屏蔽清除; 所述并行總線轉(zhuǎn)換接口完成對(duì)前端并行總線的接口和協(xié)議解碼; 所述同步異步轉(zhuǎn)換模塊將并行總線的時(shí)鐘和后端串行總線的速率轉(zhuǎn)換為同步; 所述串行地址FIFO緩存模塊和串行數(shù)據(jù)FIFO緩存模塊分別存儲(chǔ)多對(duì)串行地址和串行數(shù)據(jù); 所述串行總線協(xié)議解碼實(shí)現(xiàn)與數(shù)據(jù)校驗(yàn)單元把所述串行地址FIFO緩存模塊中的串行地址和所述串行數(shù)據(jù)FIFO緩存模塊中的串行數(shù)據(jù)按串行總線的協(xié)議發(fā)送出去,完成讀寫訪問,并校驗(yàn)其中的讀寫數(shù)據(jù)位。
2.如權(quán)利要求1所述 的自校驗(yàn)串行總線控制器,其特征在于,所述時(shí)鐘產(chǎn)生模塊、串行總線自測(cè)試模塊、狀態(tài)線監(jiān)測(cè)模塊、串行總線設(shè)置和控制模塊、并行總線轉(zhuǎn)換接口、同步異步轉(zhuǎn)換模塊、串行地址FIFO緩存模塊、串行數(shù)據(jù)FIFO緩存模塊、串行總線協(xié)議解碼實(shí)現(xiàn)與數(shù)據(jù)校驗(yàn)單元和中斷線擴(kuò)展模塊通過CPLD實(shí)現(xiàn)。
3.如權(quán)利要求2所述的自校驗(yàn)串行總線控制器,其特征在于,所述串行總線自測(cè)試模塊包括多個(gè)讀寫寄存器。
4.如權(quán)利要求2所述的自校驗(yàn)串行總線控制器,其特征在于,所述串行總線設(shè)置和控制模塊包括多個(gè)設(shè)置寄存器。
5.一種自校驗(yàn)串行總線實(shí)現(xiàn)方法,其特征在于,包括以下步驟: 通過串行總線設(shè)置和控制模塊產(chǎn)生參考時(shí)鐘的整數(shù)倍倍頻或整數(shù)倍分頻,由時(shí)鐘產(chǎn)生模塊產(chǎn)生不同速率的串行總線; 通過訪問串行總線自測(cè)試模塊內(nèi)部的讀寫寄存器檢測(cè)串行總線內(nèi)部以及并行總線轉(zhuǎn)換接口工作是否正常,并針對(duì)不同串行總線的速率做速率測(cè)試; 通過狀態(tài)線監(jiān)測(cè)模塊監(jiān)測(cè)狀態(tài)線的變化,其輸出信號(hào)為低電平表示狀態(tài)線正常,當(dāng)其輸出信號(hào)變?yōu)楦唠娖綍r(shí),表示串行總線數(shù)據(jù)傳輸有錯(cuò),立即通過中斷的方式通知主控CPU; 通過串行總線設(shè)置和控制模塊內(nèi)部的設(shè)置寄存器設(shè)置串行總線速率、串行地址位數(shù)、串行數(shù)據(jù)位數(shù)、數(shù)據(jù)高位/低位先出選擇、中斷狀態(tài)以及屏蔽清除; 通過并行總線轉(zhuǎn)換接口完成對(duì)前端并行的總線的接口和協(xié)議解碼; 通過同步異步轉(zhuǎn)換模塊將并行總線的時(shí)鐘和后端串行總線的速率轉(zhuǎn)換為同步; 通過串行地址FIFO緩存模塊和串行數(shù)據(jù)FIFO緩存模塊分別存儲(chǔ)多對(duì)串行地址和串行數(shù)據(jù); 通過串行總線協(xié)議解碼實(shí)現(xiàn)與數(shù)據(jù)校驗(yàn)單元把所述串行地址FIFO緩存模塊中的串行地址和串行數(shù)據(jù)FIFO緩存模塊中的串行數(shù)據(jù)按串行總線的協(xié)議發(fā)送出去,完成讀寫訪問,并校驗(yàn)其中的讀寫數(shù)據(jù)位。
6.如權(quán)利要求5所述的自校驗(yàn)串行總線實(shí)現(xiàn)方法,其特征在于,所述串行總線自測(cè)試模塊內(nèi)部包括多個(gè)讀寫寄存器。
7.如權(quán)利要求5所述的自校驗(yàn)串行總線實(shí)現(xiàn)方法,其特征在于,所述串行總線設(shè)置和控制模塊內(nèi)部包括 多個(gè)設(shè)置寄存器。
全文摘要
本發(fā)明提出了一種自校驗(yàn)串行總線控制器和自校驗(yàn)串行總線實(shí)現(xiàn)方法。自校驗(yàn)串行總線控制器包括時(shí)鐘產(chǎn)生模塊、串行總線自測(cè)試模塊、狀態(tài)線監(jiān)測(cè)模塊、串行總線設(shè)置和控制模塊、并行總線轉(zhuǎn)換接口、同步異步轉(zhuǎn)換模塊、串行地址FIFO緩存模塊、串行數(shù)據(jù)FIFO緩存模塊、串行總線協(xié)議解碼實(shí)現(xiàn)與數(shù)據(jù)校驗(yàn)單元和中斷線擴(kuò)展模塊。本發(fā)明的自校驗(yàn)串行總線控制器和自校驗(yàn)串行總線實(shí)現(xiàn)方法具有自動(dòng)診錯(cuò)和糾錯(cuò)功能,能夠?qū)崿F(xiàn)微波測(cè)量儀器內(nèi)部主控CPU對(duì)各功能板的可靠控制和數(shù)據(jù)傳輸,保證數(shù)據(jù)的高速傳輸和電路單元的靈活控制,并且功能板上的總線譯碼單元實(shí)現(xiàn)起來非常方便,本發(fā)明的串行總線也可以用作儀器間的互聯(lián)通訊。
文檔編號(hào)G06F11/267GK103246588SQ201310181008
公開日2013年8月14日 申請(qǐng)日期2013年5月16日 優(yōu)先權(quán)日2013年5月16日
發(fā)明者王保銳, 許建華, 劉丹 申請(qǐng)人:中國電子科技集團(tuán)公司第四十一研究所