基于fpga和dsp的高速電路板串口的調(diào)試方法
【專利摘要】基于FPGA和DSP的高速電路板串口的調(diào)試方法,屬于電路板串口調(diào)試領(lǐng)域。為了解決目前的硬件仿真器對電路板串口進行調(diào)試時易出錯的問題。所述方法是基于FPGA、DSP和CPLD實現(xiàn)的,所述方法包括:采用FPGA確定運行DSP進行串口調(diào)試的時序,所述時序包括接收時序和發(fā)送時序的步驟;根據(jù)確定的時序,采用DSP實現(xiàn)串口調(diào)試的步驟;采用CPLD為DSP和FPGA提供正常的電平范圍的步驟。它用于電路板的串口調(diào)試。
【專利說明】基于FPGA和DSP的高速電路板串口的調(diào)試方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于電路板串口調(diào)試領(lǐng)域。
【背景技術(shù)】
[0002]串口在電路板中占了很重要的地位。傳統(tǒng)方式串口程序的調(diào)試,往往是利用專用的DSP硬件仿真器。在編寫好程序后,利用仿真器來設(shè)置斷點,觀察變量和程序的流程,逐步對程序進行調(diào)試,修正錯誤。使用硬件仿真器的確是很有效的方法,但是也有一些缺點;很多仿真器不能做到完全硬件仿真,因而會造成仿真時正常,而實際運行時出現(xiàn)錯誤的情況;也有仿真不能通過,但是實際運行正常的情況。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是為了解決目前的硬件仿真器對電路板串口進行調(diào)試時易出錯的問題,本發(fā)明提供一種基于FPGA和DSP的高速電路板串口的調(diào)試方法。
[0004]本發(fā)明的基于FPGA和DSP的高速電路板串口的調(diào)試方法,
[0005]所述方法是基于FPGA、DSP和CPLD實現(xiàn)的,所述方法包括:
[0006]采用FPGA確定運行DSP進行串口調(diào)試的時序,所述時序包括接收時序和發(fā)送時序的步驟;
[0007]根據(jù)確定的時序,采用DSP實現(xiàn)串口調(diào)試的步驟;
[0008]采用CPLD為DSP和FPGA提供正常的電平范圍的步驟。
[0009]所述接收時序包括:
[0010]用于設(shè)定時鐘的輸入、高電平復(fù)位信號、RS422數(shù)據(jù)接收端和數(shù)據(jù)接收標(biāo)志位接口定義的步驟;
[0011]用于設(shè)置當(dāng)輸入信號遇到相應(yīng)邊沿時,串口信號邊沿檢測模塊檢測信號置高電平一個周期;
[0012]用于設(shè)置當(dāng)時鐘下降,波特率模塊進行采樣數(shù)據(jù)的步驟;
[0013]用于設(shè)置空閑線檢測模塊的步驟;
[0014]用于設(shè)置狀態(tài)機,并設(shè)置根據(jù)狀態(tài)機之后的相應(yīng)處理的步驟。
[0015]所述接收時序包括:
[0016]用于設(shè)定時鐘的輸入、高電平復(fù)位信號、RS422數(shù)據(jù)接收端和數(shù)據(jù)接收標(biāo)志位接口定義的步驟;
[0017]用于設(shè)置當(dāng)輸入信號遇到相應(yīng)邊沿時,串口信號邊沿檢測模塊檢測信號置高電平一個周期;
[0018]用于設(shè)置當(dāng)時鐘下降,波特率模塊進行采樣數(shù)據(jù)的步驟;
[0019]用于設(shè)置空閑線檢測模塊的步驟;
[0020]用于設(shè)置狀態(tài)機,并設(shè)置根據(jù)狀態(tài)機之后的相應(yīng)處理的步驟;
[0021 ] 用于讀寫信號設(shè)定,并發(fā)送數(shù)據(jù)的步驟。
[0022]采用DSP實現(xiàn)串口調(diào)試的工作過程:
[0023]用于根據(jù)設(shè)定的發(fā)送地址,向串口發(fā)送相應(yīng)的測試數(shù)據(jù)的步驟;
[0024]用于接收串口返回的數(shù)據(jù),并確定返回數(shù)據(jù)的地址的步驟;
[0025]用于通過CCS軟件自帶的觀測窗口查看串口返回的數(shù)據(jù)的步驟。
[0026]本發(fā)明的有益效果在于,發(fā)明的方法簡單方便,能夠比較通用的用于高速電路板的調(diào)試操作中,不需要繁瑣的串口調(diào)試工具等措施,且不易出錯。
【專利附圖】
【附圖說明】
[0027]圖1為本發(fā)明的工作原理示意圖。
【具體實施方式】
[0028]【具體實施方式】一:結(jié)合圖1說明本實施方式,本實施方式所述的基于FPGA和DSP的高速電路板串口的調(diào)試方法,
[0029]所述方法是基于FPGA、DSP和CPLD實現(xiàn)的,所述方法包括:
[0030]采用FPGA確定運行DSP進行串口調(diào)試的時序,所述時序包括接收時序和發(fā)送時序的步驟;
[0031]根據(jù)確定的時序,采用DSP實現(xiàn)串口調(diào)試的步驟;
[0032]采用CPLD為DSP和FPGA提供正常的電平范圍的步驟。
[0033]本實施方式中,CPLD的作用是為DSP和FPGA提供正常的電平范圍,包括:
[0034]定義各種端口,如與FPGA的連接線等。
[0035]編寫高低電平的轉(zhuǎn)換程序,為FPGA與VME總線提供外部運行的條件。
[0036]【具體實施方式】二:本實施方式是對【具體實施方式】一所述的基于FPGA和DSP的高速電路板串口的調(diào)試方法的進一步限定,所述接收時序包括:
[0037]用于設(shè)定時鐘的輸入、高電平復(fù)位信號、RS422數(shù)據(jù)接收端和數(shù)據(jù)接收標(biāo)志位接口定義的步驟;
[0038]用于設(shè)置當(dāng)輸入信號遇到相應(yīng)邊沿時,串口信號邊沿檢測模塊檢測信號置高電平一個周期;
[0039]用于設(shè)置當(dāng)時鐘下降,波特率模塊進行采樣數(shù)據(jù)的步驟;
[0040]用于設(shè)置空閑線檢測模塊的步驟;
[0041]用于設(shè)置狀態(tài)機,并設(shè)置根據(jù)狀態(tài)機之后的相應(yīng)處理的步驟。
[0042]【具體實施方式】三:本實施方式是對【具體實施方式】二所述的基于FPGA和DSP的高速電路板串口的調(diào)試方法的進一步限定,
[0043]所述接收時序包括::
[0044]用于設(shè)定時鐘的輸入、高電平復(fù)位信號、RS422數(shù)據(jù)接收端和數(shù)據(jù)接收標(biāo)志位接口定義的步驟;
[0045]用于設(shè)置當(dāng)輸入信號遇到相應(yīng)邊沿時,串口信號邊沿檢測模塊檢測信號置高電平一個周期;
[0046]用于設(shè)置當(dāng)時鐘下降,波特率模塊進行采樣數(shù)據(jù)的步驟;
[0047]用于設(shè)置空閑線檢測模塊的步驟;
[0048]用于設(shè)置狀態(tài)機,并設(shè)置根據(jù)狀態(tài)機之后的相應(yīng)處理的步驟;
[0049]用于讀寫信號設(shè)定,并發(fā)送數(shù)據(jù)的步驟。
[0050]【具體實施方式】四:本實施方式是對【具體實施方式】三所述的基于FPGA和DSP的高速電路板串口的調(diào)試方法的進一步限定,
[0051]采用DSP實現(xiàn)串口調(diào)試的工作過程:
[0052]用于根據(jù)設(shè)定的發(fā)送地址,向串口發(fā)送相應(yīng)的測試數(shù)據(jù)的步驟;
[0053]用于接收串口返回的數(shù)據(jù),并確定返回數(shù)據(jù)的地址的步驟;
[0054]用于通過CCS軟件自帶的觀測窗口查看串口返回的數(shù)據(jù)的步驟。
[0055]如圖1,在具體調(diào)試過程中:
[0056]步驟一、用杜邦線將RS422的發(fā)送腳與接收腳連在一起。
[0057]步驟二、將電路板插在擁有VME總線的機箱上,確保能夠正常供電。
[0058]步驟三、連接CPLD的JTAG 口,對其進行下載操作;
[0059]步驟四、CPLD下載完成后,連接FPGA的JTAG 口,對其進行下載操作;
[0060]步驟五、將DSP的JTAG 口連接上,然后將串口調(diào)試程序進行下載;
[0061]步驟六、下載完成后,對程序中的參照值進行比對,看是否發(fā)送、接受成功。
[0062]本發(fā)明設(shè)置好參數(shù)后,就可以進行仿真了。單擊工具欄的圖標(biāo)按此在新窗口瀏覽圖片進入Debug (仿真調(diào)試)狀態(tài),在Output window窗口中的co_and文本框(一般是在左下角)中輸入上面介紹的命令。
[0063]然后設(shè)置斷點,一般是在關(guān)鍵地方或與串口相關(guān)聯(lián)的地方設(shè)置。再單擊圖標(biāo)運行(Run)用戶程序,使用戶程序運轉(zhuǎn)起來(不然是接收不到串口數(shù)據(jù)的)。這時再使用串口調(diào)試軟件或用戶調(diào)試軟件,發(fā)送通信命令或者數(shù)據(jù)包,看用戶程序是否進入斷點,以及相關(guān)的變量是否正確。還可以有意發(fā)送帶有錯誤數(shù)據(jù)的數(shù)據(jù)包,以觀察用戶程序的異常處理部分是否正常。一旦發(fā)現(xiàn)程序中的錯誤,可以馬上停止仿真調(diào)試,立即修改代碼,然后再次重復(fù)上面的步驟進行仿真。因為不需要與用戶目標(biāo)板聯(lián)機,也不用下載代碼到用戶板上,所以速度非常高。以上這些步驟和使用硬件仿真器的基本一樣,只不過現(xiàn)在使用的是軟件仿真。需要注意的是:仿真時電路板串口實際的波特率由MODE命令來指定,DSP程序中的參數(shù)是不影響串口仿真狀態(tài)的(也就是說這些參數(shù)不影響仿真的波特率,即使它們是錯誤的)。但是中斷的使能位還是起作用的,如果中斷使能位被禁止,那么就不會進入串口中斷。
[0064]因為這種方法是利用計算機的串口直接與電路板的串口進行連接,而仿真是通過CCS軟件來轉(zhuǎn)換串口上的數(shù)據(jù),不是直接轉(zhuǎn)發(fā)數(shù)據(jù)的,所以在實際仿真時,處理速度會比實際DSP運行時稍微低一點。比方說仿真狀態(tài)時Is只能發(fā)送/接收10個數(shù)據(jù)幀,但在DSP硬件上運行時可能Is就可以接收/發(fā)送50個數(shù)據(jù)幀。這與使用的計算機的速度有關(guān),但對仿真來說,是沒有任何影響的。對于多串口的電路板,從理論上來說,可以一次綁定多個串口。
【權(quán)利要求】
1.基于FPGA和DSP的高速電路板串口的調(diào)試方法,其特征在于,所述方法是基于FPGA, DSP和CPLD實現(xiàn)的,所述方法包括: 采用FPGA確定運行DSP進行串口調(diào)試的時序,所述時序包括接收時序和發(fā)送時序的步驟; 根據(jù)確定的時序,采用DSP實現(xiàn)串口調(diào)試的步驟; 采用CPLD為DSP和FPGA提供正常的電平范圍的步驟。
2.根據(jù)權(quán)利要求1所述的基于FPGA和DSP的高速電路板串口的調(diào)試方法,其特征在于,所述接收時序包括: 用于設(shè)定時鐘的輸入、高電平復(fù)位信號、RS422數(shù)據(jù)接收端和數(shù)據(jù)接收標(biāo)志位接口定義的步驟; 用于設(shè)置當(dāng)輸入信號遇到相應(yīng)邊沿時,串口信號邊沿檢測模塊檢測信號置高電平一個周期; 用于設(shè)置當(dāng)時鐘下降,波特率模塊進行采樣數(shù)據(jù)的步驟; 用于設(shè)置空閑線檢測模塊的步驟; 用于設(shè)置狀態(tài)機,并設(shè)置根據(jù)狀態(tài)機之后的相應(yīng)處理的步驟。
3.根據(jù)權(quán)利要求2所述的基于FPGA和DSP的高速電路板串口的調(diào)試方法,其特征在于,所述接收時序包括: 用于設(shè)定時鐘的輸入、高電平復(fù)位信號、RS422數(shù)據(jù)接收端和數(shù)據(jù)接收標(biāo)志位接口定義的步驟; 用于設(shè)置當(dāng)輸入信號遇到相應(yīng)邊沿時,串口信號邊沿檢測模塊檢測信號置高電平一個周期; 用于設(shè)置當(dāng)時鐘下降,波特率模塊進行采樣數(shù)據(jù)的步驟; 用于設(shè)置空閑線檢測模塊的步驟; 用于設(shè)置狀態(tài)機,并設(shè)置根據(jù)狀態(tài)機之后的相應(yīng)處理的步驟; 用于讀寫信號設(shè)定,并發(fā)送數(shù)據(jù)的步驟。
4.根據(jù)權(quán)利要求3所述的基于FPGA和DSP的高速電路板串口的調(diào)試方法,其特征在于,采用DSP實現(xiàn)串口調(diào)試的工作過程: 用于根據(jù)設(shè)定的發(fā)送地址,向串口發(fā)送相應(yīng)的測試數(shù)據(jù)的步驟; 用于接收串口返回的數(shù)據(jù),并確定返回數(shù)據(jù)的地址的步驟; 用于通過CCS軟件自帶的觀測窗口查看串口返回的數(shù)據(jù)的步驟。
【文檔編號】G06F17/50GK104200033SQ201410455326
【公開日】2014年12月10日 申請日期:2014年9月9日 優(yōu)先權(quán)日:2014年9月9日
【發(fā)明者】陳興林, 劉法志, 劉帥, 劉啟循, 魏凱, 張之萬, 范文超, 楊緒東 申請人:哈爾濱工業(yè)大學(xué)