基于FPGA和nRF905的挖掘機(jī)無(wú)線監(jiān)控?cái)?shù)據(jù)傳輸系統(tǒng)
(2) SOPC片上串口通信程序設(shè)計(jì)
NIOSII的UART核可以設(shè)置所需的通信模式,比如波特率、偶校驗(yàn)、停止位、數(shù)據(jù)位和其他控制信號(hào)。系統(tǒng)選用的串口波特率為9600bps。采用1位起始位,8位數(shù)據(jù)位和1位停止位。串口通信可以使用查詢的方式也可以使用中斷的方式。但是由于查詢的方式較為占用資源,所以本系統(tǒng)采用中斷的方式直接讀取寄存器。UART核能夠輸出一個(gè)單獨(dú)的中斷請(qǐng)求(IRQ)信號(hào)給Avalon總線,從而連接到Nios II處理器,通知FPGA將數(shù)據(jù)轉(zhuǎn)發(fā)至SPI接口。串口程序流程圖如圖4所示。本文引用地址:http://2s4d.com/article/190037.htm
3 上下位機(jī)與FPGA間的串口程序設(shè)計(jì)
3.1 MTC方的串口通信設(shè)計(jì)
Codesyrs進(jìn)行RS232通信編程,要用到以下四個(gè)函數(shù):SysComOpen,SysComSetSettings,SysComRead,SvsComWrite。編寫(xiě)程序方法類似C語(yǔ)言。
SvsComOpen:打開(kāi)RS232通訊端口,MTC僅可選COM2,其余皆不可用。
Buffm Address:當(dāng)讀取到數(shù)據(jù)后拷貝到變量BUFFER_DATA指向的地址內(nèi);
Bvtes To Read:讀取多少個(gè)bytes。
Buffer Address:發(fā)送數(shù)據(jù)所在地址。
3.2 PC方的串口通信設(shè)計(jì)
PC的串口通信程序使用VC6.0編寫(xiě),使用Microsoft公司ActiveX控件MSComm。采用事件驅(qū)動(dòng)的辦法,每當(dāng)有數(shù)據(jù)由串口收到時(shí),就會(huì)觸發(fā)消息的響應(yīng)函數(shù)OnComm。即可由PC收取串口的數(shù)據(jù)。發(fā)送時(shí)可直接調(diào)用該控件發(fā)送。
4 結(jié)束語(yǔ)
本系統(tǒng)能夠低成本地設(shè)計(jì)出挖掘機(jī)無(wú)線傳輸系統(tǒng),較好地完成半雙工的挖掘機(jī)無(wú)線數(shù)據(jù)傳輸工作。采用SOPC設(shè)計(jì)挖掘機(jī)無(wú)線傳輸模塊的控制器能夠在軟硬件設(shè)計(jì)上實(shí)現(xiàn)模塊化,能夠大量地減輕研發(fā)工作量、提高研發(fā)速度。
評(píng)論