基于FPGA和nRF905的挖掘機(jī)無(wú)線監(jiān)控?cái)?shù)據(jù)傳輸系統(tǒng)
2.2 SPI核配置
nRF905射頻模塊和FGPA通過(guò)SPI接口進(jìn)行數(shù)據(jù)傳輸,該接口以主從方式工作,由以下四線組成:SCK (時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生)、CSN(片選信號(hào),由主設(shè)備控制)、MOSI(主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入)、MISO(主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出) 通過(guò)FPGA實(shí)現(xiàn)SPI接口與總線接口轉(zhuǎn)換,需要考慮的因素有:
(1)接口時(shí)序 主要包括/SS與SCK的時(shí)序關(guān)系:/TREQ與/SS的時(shí)序關(guān)系;SCK與MOSI和MISO的時(shí)序關(guān)系,比如MOSI數(shù)據(jù)存SCK下降沿被從機(jī)采集接收,而MISO數(shù)據(jù)必須在SCK上升沿由從機(jī)輸出,在相鄰的下降沿被主機(jī)接收。
(2)接口速率 nRF905無(wú)線收發(fā)芯片的最高工作速率為50kb/s。上位機(jī)端的控制軟件可以設(shè)置串口的工作速率,本設(shè)計(jì)中波特率設(shè)置為9600b/s。串口的波特率的每個(gè)字節(jié)加上起始位、停止位和奇偶校驗(yàn)位,經(jīng)計(jì)算,串口工作速率小于無(wú)線芯片的工作速率,因此可以采用nRF905轉(zhuǎn)發(fā)串口數(shù)據(jù)進(jìn)行通信。
SOPC Builder內(nèi)部集成的NIOS II的SPI核可以實(shí)現(xiàn)SPI協(xié)議并提供與Avalon總線相連的接口。SPI核作為連接微處理器和控制設(shè)備的通信接口,可以實(shí)現(xiàn)主協(xié)議,也可以實(shí)現(xiàn)從協(xié)議。本系統(tǒng)將SPI核配置為主模式。SPI發(fā)送數(shù)據(jù)的順序根據(jù)nRF905的SPI數(shù)據(jù)傳輸要求,數(shù)據(jù)字的高位先發(fā)送。
2.3 片上系統(tǒng)通訊控制程序設(shè)計(jì)
(1) FPGA半雙工雙向通信程序設(shè)計(jì)
nRF905采用了Nordic公司的VLSI Shock Burst技術(shù),射頻數(shù)據(jù)包的高速信號(hào)處理都在芯片內(nèi)部進(jìn)行,并且自動(dòng)產(chǎn)生前導(dǎo)碼和CRC校驗(yàn)碼。由于nRF905為半雙工芯片,為了實(shí)現(xiàn)雙向通信,在程序設(shè)計(jì)時(shí)需要考慮發(fā)送與接收的時(shí)間。為了提高運(yùn)行效率,可以采用Shock Burst RX直接到ShockBurst TX模式轉(zhuǎn)換或Shock Burst TX直接到ShockBurst RX的模式轉(zhuǎn)換,由于不需要再重新配置寄存器,保持了相同的頻道,因此轉(zhuǎn)換所消耗的時(shí)間最少,轉(zhuǎn)換時(shí)間為550μs。發(fā)送端數(shù)據(jù)采用單字節(jié)逐次移位的方式進(jìn)行傳輸。在發(fā)送完畢即直接從Shock Burst TX模式轉(zhuǎn)換為Shock Burst RX模式。為了確保收到信息,系統(tǒng)采用中斷的方式,通過(guò)數(shù)據(jù)就緒輸出DR置高米產(chǎn)生中斷,如果沒(méi)有收到則接收端仍然保持Shock Burst RX模式,發(fā)送端若一定時(shí)間收不到對(duì)方的信號(hào)則將上次發(fā)送的內(nèi)容再次發(fā)送,從而保證了接收端信息的可靠接收,實(shí)現(xiàn)了雙向通信。FPGA片上系統(tǒng)通信流程罔如圖3所示。本文引用地址:http://m.butianyuan.cn/article/190037.htm
評(píng)論