基于SOPC的乒乓球游戲設計
3.2 直流信號生成方法
生成直流信號的方法很多。在此論述幾種常見方法。
第一種是通過D/A芯片。市場上D/A芯片較多,如DAC0832,DAC0809等。這種方法原理簡單,只需給定恒定的數字值便可以輕松控制輸出直流波形的電壓值。出于成本考慮,我們轉而另一種方法。
第二種方法是低通濾波法。例如當方波占空比為100%時可當作是直流高電平信號。而占空比為0表示零電平。將一定占空比的直流信號經過低通濾波器,經過計算可知占空比對于輸出信號的電平高低成線性關系。所以我們可以利用這點來完成電平控制。
3.3 擊球控制
運用單片機與FPGA實驗板之間的通訊完成擊球命令的傳遞。常見的通訊方法:串口通訊和并口通訊。
并口通訊雖然使用簡單,但是速度較慢,占用管腳較多,實現功能受到位數限制,可以完成的指令較少。于是利用串口通訊。在Quartus軟件下運行SOPC Builder生成SOPC并為其添加UART功能。設置波特率為9600。利用SOPC的txd和rxd兩個端口與單片機的串口端相連接。于是便可以在程序中加入串口接收中斷并且在中斷服務函數中完成大量工作。以下編碼全部用C語言完成。本文引用地址:http://butianyuan.cn/article/172167.htm
SOPC內部中斷服務函數:
代碼分析:
首先簡單介紹Avalon總線。SOPC Builder自動生成的Avalon交換架構是針對系統(tǒng)處理器和外設的專用互聯需求進行優(yōu)化。Avalon總線可以連接許多外部設備,如定時器/計數器,外部三態(tài)橋接,外部SRAM接口,UART,LCD接口,用戶邏輯接口JTAG,UARTC,并行I/O等。代碼中,IOWR_ALTERA_AVALON_UART_STATUS()函數可以完成向串口發(fā)送數據的任務,IOWR_ALTERA_AVALON_PIO_DATA()函數則可以給內部工程發(fā)送并行數據,控制占空比的值。
評論