本發(fā)明涉及信息通信,尤其涉及一種半雙工的片間spi訪問(wèn)寄存器的方法及系統(tǒng)。
背景技術(shù):
1、在某些定制化的無(wú)線通信產(chǎn)品中,由于涉及到多種外設(shè)的控制,高速口的傳輸以及數(shù)字中頻信號(hào)的處理,從經(jīng)濟(jì)成本的角度考慮,往往舍棄了使用一片搭載arm的高端fpga芯片,而采用兩片低端的fpga協(xié)同工作,其中一片搭載arm的主fpga,另一片不攜帶arm的從fpga,主fpga用來(lái)控制外設(shè)和傳輸高速數(shù)據(jù),而從fpga則用來(lái)處理數(shù)字中頻信號(hào)和開(kāi)發(fā)一些不需要軟件協(xié)同的功能。但是沒(méi)有arm意味著沒(méi)有g(shù)p總線可以調(diào)用,從而無(wú)法實(shí)現(xiàn)寄存器這一基礎(chǔ)功能,而寄存器無(wú)論在前期的調(diào)試中,還是后期的定位問(wèn)題中,起著舉足輕重的作用。所以在主fpga協(xié)同從fpga工作的平臺(tái)上,開(kāi)發(fā)出一套能滿(mǎn)足技術(shù)人員調(diào)試以及定位問(wèn)題的寄存器系統(tǒng)尤為重要。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的不足,提供一種半雙工的片間spi訪問(wèn)寄存器的方法及系統(tǒng),通過(guò)一片攜帶arm處理器的主側(cè)fpga向另一片無(wú)arm處理器的從側(cè)fpga通過(guò)串行通用接口spi協(xié)議的方式,實(shí)現(xiàn)主側(cè)fpga向從側(cè)fpga讀寫(xiě)寄存器的功能。
2、為達(dá)到上述目的,本發(fā)明是采用下述技術(shù)方案實(shí)現(xiàn)的:
3、第一方面,本發(fā)明提供了一種半雙工的片間spi訪問(wèn)寄存器的方法,用于通過(guò)自帶arm處理器的主側(cè)fpga對(duì)未帶arm處理器的從側(cè)fpga進(jìn)行讀寫(xiě)操作,所述主側(cè)fpga包括依次連接的arm處理器、連接器、轉(zhuǎn)換器、主側(cè)寄存器以及主側(cè)spi接口;所述從側(cè)fpga包括互連的從側(cè)spi接口和從側(cè)寄存器;所述方法包括寫(xiě)狀態(tài)和/或讀狀態(tài);
4、在寫(xiě)狀態(tài)下,獲取arm處理器輸出的寫(xiě)數(shù)據(jù)和寫(xiě)地址,依次經(jīng)由連接器轉(zhuǎn)換為axi4協(xié)議的協(xié)議數(shù)據(jù),經(jīng)由轉(zhuǎn)換器轉(zhuǎn)換為寫(xiě)使能、寫(xiě)數(shù)據(jù)以及寫(xiě)地址組成的接口數(shù)據(jù),經(jīng)由主側(cè)寄存器轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由主側(cè)spi接口轉(zhuǎn)換為spi協(xié)議的串行數(shù)據(jù),經(jīng)由從側(cè)spi接口轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由從側(cè)寄存器識(shí)別出寫(xiě)使能、寫(xiě)地址以及寫(xiě)數(shù)據(jù),將寫(xiě)數(shù)據(jù)存放在寫(xiě)地址中;
5、在讀狀態(tài)下,獲取arm處理器輸出的讀地址,依次經(jīng)由連接器轉(zhuǎn)換為axi4協(xié)議的協(xié)議數(shù)據(jù),經(jīng)由轉(zhuǎn)換器轉(zhuǎn)換為讀使能和讀地址組成的接口數(shù)據(jù),經(jīng)由主側(cè)寄存器轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由主側(cè)spi接口轉(zhuǎn)換為spi協(xié)議的串行數(shù)據(jù),經(jīng)由從側(cè)spi接口轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由從側(cè)寄存器識(shí)別出讀使能和讀地址,獲取讀地址對(duì)應(yīng)的讀數(shù)據(jù);將讀數(shù)據(jù)沿傳輸路徑反向傳回arm處理器。
6、可選的,在寫(xiě)狀態(tài)下,基于所述axi4協(xié)議的握手準(zhǔn)則:在轉(zhuǎn)換器準(zhǔn)備好的情況下,轉(zhuǎn)換器將寫(xiě)地址通道和寫(xiě)數(shù)據(jù)通道的準(zhǔn)備信號(hào)發(fā)送給連接器,表示轉(zhuǎn)換器已經(jīng)準(zhǔn)備好,此時(shí)連接器將寫(xiě)地址和寫(xiě)數(shù)據(jù)發(fā)送至轉(zhuǎn)換器;在連接器準(zhǔn)備好的情況下,連接器將寫(xiě)回復(fù)通道的準(zhǔn)備信號(hào)發(fā)送給轉(zhuǎn)換器,表示連接器已經(jīng)準(zhǔn)備好,此時(shí)轉(zhuǎn)換器將寫(xiě)回復(fù)數(shù)據(jù)發(fā)送至連接器;
7、根據(jù)轉(zhuǎn)換器獲取的axi4協(xié)議的協(xié)議數(shù)據(jù),將寫(xiě)地址和寫(xiě)數(shù)據(jù)對(duì)齊在同一時(shí)刻并發(fā)送至主側(cè)寄存器,同時(shí)發(fā)送寫(xiě)使能至主側(cè)寄存器。
8、可選的,在寫(xiě)狀態(tài)下,
9、定義spi寫(xiě)使能寄存器,包括spi寫(xiě)使能地址及其對(duì)應(yīng)的spi寫(xiě)使能信號(hào),spi寫(xiě)使能信號(hào)的高低電平分別表示寫(xiě)使能有效和寫(xiě)使能無(wú)效;
10、定義讀寫(xiě)判斷寄存器,包括讀寫(xiě)判斷地址及其對(duì)應(yīng)的讀寫(xiě)判斷信號(hào),讀寫(xiě)判斷信號(hào)的高低電平分別表示讀狀態(tài)和寫(xiě)狀態(tài);
11、定義spi寫(xiě)地址寄存器,包括spi寫(xiě)地址的地址及其對(duì)應(yīng)的spi寫(xiě)地址信號(hào),spi寫(xiě)地址信號(hào)為16位,表示傳輸最大位寬為16bit的地址;
12、定義spi寫(xiě)數(shù)據(jù)寄存器,包括spi寫(xiě)數(shù)據(jù)的地址及其對(duì)應(yīng)的spi寫(xiě)數(shù)據(jù)信號(hào),spi寫(xiě)數(shù)據(jù)信號(hào)為32位,表示傳輸最大位寬為32bit的數(shù)據(jù);
13、根據(jù)主側(cè)寄存器獲取的寫(xiě)使能、寫(xiě)數(shù)據(jù)以及寫(xiě)地址組成的接口數(shù)據(jù),將讀寫(xiě)判斷信號(hào)置為低電平,將寫(xiě)地址作為spi寫(xiě)地址信號(hào),將寫(xiě)數(shù)據(jù)作為spi寫(xiě)數(shù)據(jù)信號(hào),將spi寫(xiě)使能信號(hào)置為高電平。
14、可選的,在寫(xiě)狀態(tài)下,spi寫(xiě)使能信號(hào)為高電平時(shí),觸發(fā)主側(cè)spi接口的工作邏輯:
15、將spi的片選信號(hào)置為低電平,在間隔10個(gè)系統(tǒng)時(shí)鐘的單位時(shí)鐘周期位置,將接入的系統(tǒng)時(shí)鐘進(jìn)行十分頻,設(shè)置spi時(shí)鐘,同時(shí)采用spi時(shí)鐘的上升沿采樣,由于需要向從側(cè)fpga傳輸1bit的讀寫(xiě)判斷信號(hào)、16bit的spi寫(xiě)地址信號(hào)、32bit的spi寫(xiě)數(shù)據(jù)信號(hào),所以傳輸?shù)膕pi時(shí)鐘需要持續(xù)49個(gè)spi的單位時(shí)鐘周期;
16、在間隔spi的片選信號(hào)5個(gè)系統(tǒng)時(shí)鐘的單位時(shí)鐘周期的位置,設(shè)置采集數(shù)據(jù)的建立時(shí)間和保持時(shí)間均為50%,依次將讀寫(xiě)判斷信號(hào)、spi寫(xiě)地址信號(hào)、spi寫(xiě)數(shù)據(jù)信號(hào)使用移位寄存器的方式,通過(guò)spi的mosi總線依次發(fā)送49bit,當(dāng)最后1bit寫(xiě)數(shù)據(jù)信號(hào)發(fā)送完成后,滿(mǎn)足保持時(shí)間后將片選信號(hào)置為高電平,完成了寫(xiě)地址和寫(xiě)數(shù)據(jù)的從側(cè)fpga傳輸?shù)牟僮鳌?/p>
17、可選的,在寫(xiě)狀態(tài)下,從側(cè)spi接口的工作邏輯為:
18、在片選信號(hào)被置為低電平的情況下,同時(shí)在spi時(shí)鐘的上升沿處,判斷接收到的讀寫(xiě)判斷信號(hào)是否為低電平,若是,則將通過(guò)spi的mosi總線接收到的16bit的spi寫(xiě)地址信號(hào)和32bit的spi寫(xiě)數(shù)據(jù)信號(hào)緩存,并傳輸至從側(cè)寄存器,同時(shí)輸出寫(xiě)使能至從側(cè)寄存器。
19、第二方面,本發(fā)明提供了一種半雙工的片間spi訪問(wèn)寄存器的系統(tǒng),用于通過(guò)自帶arm處理器的主側(cè)fpga對(duì)未帶arm處理器的從側(cè)fpga進(jìn)行讀寫(xiě)操作,所述主側(cè)fpga包括依次連接的arm處理器、連接器、轉(zhuǎn)換器、主側(cè)寄存器以及主側(cè)spi接口;所述從側(cè)fpga包括互連的從側(cè)spi接口和從側(cè)寄存器;所述系統(tǒng)包括寫(xiě)狀態(tài)執(zhí)行模塊和/或讀狀態(tài)執(zhí)行模塊;
20、所述寫(xiě)狀態(tài)執(zhí)行模塊用于在寫(xiě)狀態(tài)下,獲取arm處理器輸出的寫(xiě)數(shù)據(jù)和寫(xiě)地址,依次經(jīng)由連接器轉(zhuǎn)換為axi4協(xié)議的協(xié)議數(shù)據(jù),經(jīng)由轉(zhuǎn)換器轉(zhuǎn)換為寫(xiě)使能、寫(xiě)數(shù)據(jù)以及寫(xiě)地址組成的接口數(shù)據(jù),經(jīng)由主側(cè)寄存器轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由主側(cè)spi接口轉(zhuǎn)換為spi協(xié)議的串行數(shù)據(jù),經(jīng)由從側(cè)spi接口轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由從側(cè)寄存器識(shí)別出寫(xiě)使能、寫(xiě)地址以及寫(xiě)數(shù)據(jù),將寫(xiě)數(shù)據(jù)存放在寫(xiě)地址中;
21、所述讀狀態(tài)執(zhí)行模塊用于在讀狀態(tài)下,獲取arm處理器輸出的讀地址,依次經(jīng)由連接器轉(zhuǎn)換為axi4協(xié)議的協(xié)議數(shù)據(jù),經(jīng)由轉(zhuǎn)換器轉(zhuǎn)換為讀使能和讀地址組成的接口數(shù)據(jù),經(jīng)由主側(cè)寄存器轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由主側(cè)spi接口轉(zhuǎn)換為spi協(xié)議的串行數(shù)據(jù),經(jīng)由從側(cè)spi接口轉(zhuǎn)換為預(yù)定義的寄存器數(shù)據(jù),經(jīng)由從側(cè)寄存器識(shí)別出讀使能和讀地址,獲取讀地址對(duì)應(yīng)的讀數(shù)據(jù);將讀數(shù)據(jù)沿傳輸路徑反向傳回arm處理器。
22、與現(xiàn)有技術(shù)相比,本發(fā)明所達(dá)到的有益效果:
23、本發(fā)明提供的一種半雙工的片間spi訪問(wèn)寄存器的方法及系統(tǒng),1)采用一片攜帶arm處理器的主側(cè)fpga向另一片無(wú)arm處理器的從側(cè)fpga通過(guò)串行通用接口spi協(xié)議的方式,實(shí)現(xiàn)主側(cè)fpga向從側(cè)fpga讀寫(xiě)寄存器的功能,從而避免了在一片高端fpga完成所有arm的功能所帶來(lái)的經(jīng)濟(jì)成本,降低了開(kāi)發(fā)成本。2)在實(shí)現(xiàn)數(shù)據(jù)和地址的傳輸時(shí),采用axi4協(xié)議向更為簡(jiǎn)單的使能,地址及數(shù)據(jù)的自定義接口轉(zhuǎn)換,以及向spi協(xié)議的轉(zhuǎn)換,實(shí)現(xiàn)了axi4協(xié)議和spi協(xié)議的互聯(lián),更具靈活性,賦予了系統(tǒng)適應(yīng)更多場(chǎng)景的能力。3)通過(guò)劃分主側(cè)fpga和從側(cè)fpga的具體模塊以及具體模塊的功能實(shí)現(xiàn),增強(qiáng)系統(tǒng)邏輯性,同時(shí)方便在調(diào)試時(shí)期出現(xiàn)問(wèn)題后的斷點(diǎn)抓數(shù),增強(qiáng)開(kāi)發(fā)效率。4)采用spi協(xié)議,由主fpga實(shí)現(xiàn)從fpga的寄存器讀取,只需要簡(jiǎn)單的pcb走線,并不需要實(shí)際的spi器件,便可以完成寄存器讀取的功能,降低系統(tǒng)復(fù)雜程度。