• 正文
    • 13.8  樣機的調試方法和技巧
  • 相關推薦
申請入駐 產業(yè)圖譜

高速PCI信號采集卡設計與實現(xiàn)綜合實例之:樣機的調試方法和技巧

2013/08/30
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

?

13.8??樣機的調試方法和技巧

不管是復雜的電子系統(tǒng)還是簡單的電路,樣機的調試都是有一些基本步驟的。對于本案例的信號采集設備同樣如此。

最先進行的就是電源系統(tǒng)的調試,包括是否有短路、斷路,是否有虛焊,各電壓系統(tǒng)是否正常,電源模塊輸出電流是否足夠驅動負載等。只有電源系統(tǒng)正常工作,才能談得上實現(xiàn)系統(tǒng)功能。

完成了電源系統(tǒng)的調試后,PCI信號采集卡的下一個工作就是對PCI954進行配置。用戶可以通過編程器或者PLXMon工具在線進行燒寫。這個配置過程保證主機操作系統(tǒng)能夠識別出硬件設備。

主機能夠正確地識別硬件設備后,需要進行設備驅動程序的安裝。

通過上述步驟,主機已經可以正確地識別設備,并為用戶提供了可供操作的API接口。接下來要做的調試工作就是硬件工程師要完成的FPGA邏輯設計和軟件工程師要完成的應用軟件設計。但這兩部分并不能絕對分開進行設計,因為不管是對設備的I/O操作還是DMA操作都需要進行地址空間映射,因此都需要在軟件和硬件上進行相應的設計。

在本系統(tǒng)的FPGA調試和軟件聯(lián)調中,我們使用了兩個簡單的例子來驗證系統(tǒng)是否能夠正常的工作。一個是直接用FPGA控制的跑馬燈實例,另一個是通過應用軟件控制的跑馬燈實例。

13.8.1??沒有PCI控制的跑馬燈

本實例僅用FPGA內部邏輯對LED進行控制,實現(xiàn)跑馬燈。通過本實例可以檢驗FPGA的兩種配置模式是否正常工作,同時可以學習使用QuartusII軟件開發(fā)和配置FPGA的流程。

如圖13.23是本實例的系統(tǒng)框圖。

圖13.23??跑馬燈系統(tǒng)框圖

其中計數(shù)分頻器是通過計數(shù)器晶振的40MHz時鐘進行分頻,產生的低頻時鐘作為LED狀態(tài)機的控制時鐘。LED狀態(tài)機使用4個狀態(tài)分別表示4個LED的亮滅,狀態(tài)轉換通過狀態(tài)機的時鐘上升沿觸發(fā),實現(xiàn)跑馬燈。

下面是這個實例FPGA內的主要Verilog源代碼。

//--計數(shù)分頻-------------------------------------

always?@?(posedge?clkin)

?????count?<=?count+1;???????????? //分頻計數(shù)器

assign?clk?=?count[24];?????????? //狀態(tài)機時鐘

//--LED控制--------------------------------

always?@?(posedge?clk)?begin

?????case(state)???????????????????????//跑馬燈狀態(tài)控制量

???????????2'd0: led?<=?4'b0001;??????? //D1亮

???????????2'd1: led?<=?4'b0010;??????? //D2亮

???????????2'd2: led?<=?4'b0100;??????? //D3亮

???????????2'd3: led?<=?4'b1000;??????? //D4亮

?????endcase

?????state?<=?state+1;??????????????//跑馬燈狀態(tài)變化

end

?

13.8.2??基于PCI控制的跑馬燈

本實例使用應用程序通過PCI總線(PCI9054)來對FPGA內部邏輯參數(shù)進行配置,實現(xiàn)對LED的控制。通過本實例可以檢驗開發(fā)板的驅動以及PCI的實時控制,同時學習應用程序和PCI9054進行通信的方法。

如圖13.24所示為本實例的系統(tǒng)框圖。

圖13.24??基于PCI控制的跑馬燈系統(tǒng)框圖

?

其中PCI本地控制器實現(xiàn)與PCI9054的接口通信,獲取LED控制應用程序發(fā)出的觸發(fā)信號。LED控制器包含LED狀態(tài)機并接受PCI本地控制器的觸發(fā)信號,通過判別LED觸發(fā)的類型決定啟動單個LED控制或LED狀態(tài)機。

下面是這個范例FPGA內的主要Verilog源代碼。

//--計數(shù)分頻-------------------------------------

always?@?(posedge?clkin)

?????count?<=?count+1;????????????????????????? //分頻計數(shù)器

assign?clk?=?count[24];?????????????????????? //狀態(tài)機時鐘

//--LED控制--------------------------------

always?@?(posedge?clk)?begin

?????case(LEDByControl)??????????????????????????? //狀態(tài)控制量

??????????8'd1: led?<=?4'b0001;???????????????? //PCI控制D1亮

??????????8'd2: led?<=?4'b0010;???????????????? //PCI控制D2亮

??????????8'd3: led?<=?4'b0100;???????????????? //PCI控制D3亮

??????????8'd4: led?<=?4'b1000;???????????????? //PCI控制D4亮

??????????8'd5: case(state)????? ??????????????? //跑馬燈狀態(tài)控制量

????????????????????????2'b00: led?<=?4'b0001; ? //跑馬燈D1亮

????????????????????????2'b01: led?<=?4'b0010;?? //跑馬燈D2亮

????????????????????????2'b10: led?<=?4'b0100;?? //跑馬燈D3亮

????????????????????????2'b11: led?<=?4'b1000;?? //跑馬燈D4亮

????????????????????????endcase

??????????default:?led?<=?4'b0000;??????????????? //跑馬燈全滅

??????????endcase

?????state?<=?state+1;???????????????????????????? //跑馬燈狀態(tài)變化

end

//--PCI本地控制器-------------------------------

always?@(posedge?clkin)

?????lholda?<=?lhold;??????????????????????????? //PCI本地總線占用請求及應答

always?@(posedge?clkin?or?negedge?lrst)?begin

?????if(!lrst)?begin???????????????????????????//PCI9054復位

??????????readyflag?<=?1'b0;

??????????LEDByControl[7:0]?<=?8'b0;

?????end

?????else?if(!ads?&?lwr?&?blast?&?la[13:0]?==?14'b1)

??????????readyflag?<=?1'b1;?????????????????//開始發(fā)起LED控制字IO配置

?????else?if(ads?&?lwr?&?blast?&?readyflag?==?1'b1?&?la[13:0]?==?14'b1)

??????????readyflag?<=?1'b1;????????????????//捕獲發(fā)起操作

?????else?if(ads?&?lwr?&?!blast?&?readyflag?==?1'b1?&?la[13:0]?==?14'b1)?begin

??????????LEDByControl[7:0]?<=?ld[31:24];//進行LED控制字IO配置操作

??????????readyflag?<=?1'b0;

??????????end

?????else begin

??????????LEDByControl[7:0]?<=?LEDByControl[7:0];//保持LED控制字

??????????readyflag?<=?1'b0;

?????end

end

在進行FPGA的邏輯設計時,采用一種叫做虛擬邏輯分析儀的技術,可以增強我們診斷系統(tǒng)的能力。Altera?FPGA提供的虛擬邏輯分析儀稱為SignalTap,Xilinx中也有同樣功能的產品稱為ChipScope。

SignalTap?II邏輯分析儀是Altera第二代系統(tǒng)級調試工具,能夠獲取、顯示可編程片上系統(tǒng)(SOPC)的實時信號,幫助工程師在其系統(tǒng)設計中觀察硬件和軟件的交互作用。在可編程邏輯市場上,SignalTap?II邏輯分析儀專用于Quartus?II?軟件,與其他嵌入式邏輯分析儀相比,它支持的通道數(shù)最多,抽樣深度最大,時鐘速率最高。

如圖13.25所示為控制其中一個LED時的PCI本地時序圖。

圖13.25??控制1個LED的PCI本地時序圖

?

如圖13.26所示為控制4個LED進行跑馬燈時的PCI本地時序圖。

圖13.26??控制4個LED跑馬燈的PCI本地時序圖

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

華清遠見(www.farsight.com.cn)是國內領先嵌入師培訓機構,2004年注冊于中國北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營分公司。華清遠見除提供嵌入式相關的長期就業(yè)培訓、短期高端培訓、師資培訓及企業(yè)員工內訓等業(yè)務外,其下屬研發(fā)中心還負責嵌入式、Android及物聯(lián)網方向的教學實驗平臺的研發(fā)及培訓教材的出版,截止目前為止已公開出版70余本嵌入式/移動開發(fā)/物聯(lián)網相關圖書。企業(yè)理念:專業(yè)始于專注 卓識源于遠見。企業(yè)價值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。