国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于MLVDS的SPI通信鏈路設(shè)計(jì)

2021-07-28 01:05錢(qián)小東宣浩葛鵬
關(guān)鍵詞:低電平硬核寄存器

錢(qián)小東 宣浩 葛鵬

(1.中國(guó)電子科技集團(tuán)公司第三十八研究所,安徽合肥 230088;2.孔徑陣列與空間探測(cè)安徽省重點(diǎn)實(shí)驗(yàn)室,安徽合肥 230088)

0 引言

串行外圍設(shè)備接口SPI(Serial Peripheral Interface)作為一種成本低、應(yīng)用簡(jiǎn)單的全雙工同步通信總線,主要應(yīng)用于中等距離中等速度條件下的通信,其具有嚴(yán)格的時(shí)序邏輯,分為主設(shè)備和從設(shè)備,常用于板內(nèi)嵌入式處理器與外圍設(shè)備芯片之間的通信,且由于其硬件結(jié)構(gòu)簡(jiǎn)單、協(xié)議靈活以及可靠性高的特性,具有良好的可擴(kuò)展性[1]。MLVDS作為多點(diǎn)LVDS,可以驅(qū)動(dòng)多個(gè)收發(fā)器實(shí)現(xiàn)總線的互聯(lián)應(yīng)用,其具有高傳輸速率、低功耗和低噪聲的特點(diǎn)。

在某星載控制鏈路中,基于MLVDS技術(shù)使用FPGA設(shè)備作為SPI通信主機(jī)節(jié)點(diǎn)向多個(gè)ARM或FPGA實(shí)現(xiàn)的從機(jī)節(jié)點(diǎn)設(shè)備發(fā)送控制命令,主機(jī)發(fā)送的時(shí)序與標(biāo)準(zhǔn)SPI嚴(yán)格的時(shí)序邏輯唯一的區(qū)別就是時(shí)鐘連續(xù),因而對(duì)于某內(nèi)置ARM Cortex-M3內(nèi)核的MCU作為從機(jī)節(jié)點(diǎn)來(lái)說(shuō),無(wú)法直接應(yīng)用內(nèi)置的SPI硬核接收總線數(shù)據(jù),本文提出了一種軟件方法處理連續(xù)時(shí)鐘下SPI從機(jī)可靠通信的問(wèn)題。

1 接口設(shè)計(jì)

本文設(shè)計(jì)的通信接口組件應(yīng)用基于MLVDS鏈路層標(biāo)準(zhǔn)的SPI通信接收上級(jí)主機(jī)發(fā)送過(guò)來(lái)的頻率控制碼,通信主機(jī)使用 FPGA工作于主機(jī)方式,總線中掛載多個(gè)從機(jī),存在混合使用FPGA和ARM作為從機(jī)接收主機(jī)發(fā)送控制數(shù)據(jù)的情況,由于只發(fā)不收單向通信,所以占用主機(jī)FPGA板2+N個(gè)通用管腳,其中N為從機(jī)數(shù)量,如圖1所示為基于SPI總線的一主多從通信的示意圖,參與數(shù)據(jù)傳輸?shù)囊_包括時(shí)鐘引腳SCK,主出從入引腳MOSI,以及片選有效引腳CS。MOSI為從機(jī)節(jié)點(diǎn)接收的數(shù)據(jù)輸入,SCK為從機(jī)節(jié)點(diǎn)的串行時(shí)鐘輸入,CS選擇MCU一個(gè)普通的GPIO與主器件相應(yīng)的唯一片選信號(hào)相連,而標(biāo)準(zhǔn)SPI通信接口的片選管理引腳NSS釋放為GPIO另用。

圖1 FPGA SPI引腳配置為master與多個(gè)SPI slave節(jié)點(diǎn)通信模式圖Fig.1 FPGA SPI pin configuration as master communication mode diagram with multiple SPI slave nodes

根據(jù)系統(tǒng)用元器件統(tǒng)型需要,所使用的處理器芯片采用系統(tǒng)級(jí)封裝(System in Package,SIP)技術(shù)以MCU及其外設(shè)為核心構(gòu)成的一款集數(shù)據(jù)采集、處理、傳輸?shù)男盘?hào)處理系統(tǒng),電路內(nèi)部集成電源管理芯片和振動(dòng)器電路。其中MCU采用ARM3內(nèi)核的STM32F4系列芯片完成高密度,小體積化集成,具有豐富的通訊接口以及I/O口[2]。MLVDS接收器選用國(guó)產(chǎn)中電科58所的宇航等級(jí)產(chǎn)品JRMLVD201,兼容TI公司工業(yè)級(jí)SN65MLVD201產(chǎn)品。

2 軟件處理

通信主機(jī)使用FPGA作為主機(jī)產(chǎn)生如圖1所示時(shí)序,時(shí)鐘連續(xù),在時(shí)鐘的下降沿發(fā)送片選邏輯以及數(shù)據(jù),所發(fā)送數(shù)據(jù)高位在前低位在后,數(shù)據(jù)字節(jié)間無(wú)間隔,數(shù)據(jù)幀長(zhǎng)無(wú)限制。作為通信總線節(jié)點(diǎn)之一的通信接口組件只接收主機(jī)發(fā)送給本節(jié)點(diǎn)的串行控制命令并執(zhí)行相應(yīng)操作。根據(jù)通信接口設(shè)計(jì),借助于MCU內(nèi)置的SPI硬核資源實(shí)現(xiàn)SPI通信。

標(biāo)準(zhǔn)的SPI總線時(shí)序可以通過(guò)設(shè)置SPI_CR1寄存器中串行同步時(shí)鐘極性(CPOL)和相位(CPHA)兩位形成四種組合[3],串行同步時(shí)鐘極性決定了串行同步時(shí)鐘空閑狀態(tài)時(shí)候的電平狀態(tài),CPOL設(shè)為0,則串行同步時(shí)鐘的空閑狀態(tài)為低電平,否則為高電平;相位則決定有效數(shù)據(jù)的采樣時(shí)機(jī),CPHA設(shè)為0,則在串行同步時(shí)鐘有效的第一個(gè)跳邊沿采樣數(shù)據(jù),否則在串行同步時(shí)鐘的第二個(gè)跳變沿采樣數(shù)據(jù),SPI通信的主機(jī)和從機(jī)時(shí)鐘相位和極性應(yīng)該設(shè)為一致。

在傳統(tǒng)的SPI通信從機(jī)模式配置中,從SCK引腳上接收主機(jī)節(jié)點(diǎn)的串行時(shí)鐘,在主機(jī)節(jié)點(diǎn)發(fā)送時(shí)鐘前需要使能SPI從機(jī)節(jié)點(diǎn),且在主時(shí)鐘的第一個(gè)邊沿來(lái)之前或者正在進(jìn)行的通信結(jié)束之前,從機(jī)節(jié)點(diǎn)的數(shù)據(jù)寄存器需要準(zhǔn)備就緒。在使能從機(jī)節(jié)點(diǎn)和主機(jī)節(jié)點(diǎn)之前,必須將通信時(shí)鐘的極性設(shè)置為空閑時(shí)的時(shí)鐘電平。然而由圖1可見(jiàn),SPI通信主機(jī)節(jié)點(diǎn)發(fā)送的時(shí)鐘信號(hào)在空閑狀態(tài)下并非處于恒高或者恒低電平,所以本文設(shè)計(jì)如下處理方法來(lái)實(shí)現(xiàn)非連續(xù)時(shí)鐘條件下SPI從機(jī)節(jié)點(diǎn)的接收通信功能,如圖2所示為SPI1通信部分軟件設(shè)計(jì)流程圖:

圖2 SPI總線通信時(shí)序Fig.2 SPI bus communication timing

圖3 SPI通信從機(jī)節(jié)點(diǎn)配置及軟件處理流程Fig.3 SPI communication slave node configuration and software processing flow

2.1 初始化流程

(1)使能所使用的GPIO引腳時(shí)鐘功能,并設(shè)置SPI1相關(guān)引腳為復(fù)用功能;

(2)通過(guò)配置SPI1_CR1寄存器初始化SPI1,分別設(shè)置為半雙工串行收方式,從機(jī)模式,8位數(shù)據(jù)格式,同步串行時(shí)鐘在空閑狀態(tài)設(shè)為低電平,并在串行同步時(shí)鐘有效的第一個(gè)跳變沿采樣數(shù)據(jù),從機(jī)節(jié)點(diǎn)選擇(NSS)引腳設(shè)置為軟件控制,SPI波特率預(yù)分頻值選擇2,數(shù)據(jù)傳輸順序高字節(jié)在前且MSB位在前,CRC校驗(yàn)多項(xiàng)式設(shè)為7。初始化操作之后禁用SPI1并不使能SPI1接收中斷;

(3)根據(jù)硬件設(shè)計(jì),使用PE4作為SPI通信片選信號(hào),使能PE4引腳時(shí)鐘并配置為輸入模式,隨后開(kāi)啟SYSCFG時(shí)鐘,并設(shè)置PE4口與EXIT4中斷線映射,然后設(shè)置中斷線4上的中斷模式為任意電平(上升沿或下降沿)觸發(fā),并使能中斷線。最后,設(shè)置中斷分組并使能中斷。

2.2 外部中斷服務(wù)程序

外部中斷服務(wù)處理過(guò)程主要是判斷中斷線4發(fā)生中斷的跳邊沿類(lèi)型,如果是下降沿中斷,則說(shuō)明SPI主機(jī)節(jié)點(diǎn)片選本從機(jī)節(jié)點(diǎn)并開(kāi)始發(fā)送控制命令,所以立即使能SPI1時(shí)鐘,啟動(dòng)SPI1并使能SPI1接收中斷RXNE;如果是上升沿中斷,則說(shuō)明SPI通信結(jié)束,此時(shí)執(zhí)行上述步驟(2)中的SPI1初始化流程,將內(nèi)置的SPI1硬核資源恢復(fù)初始態(tài)。

2.3 SPI1接收中斷服務(wù)程序

根據(jù)SPI初始化配置,在片選信號(hào)低電平有效期間,每8個(gè)時(shí)鐘的最后一個(gè)采樣時(shí)鐘邊沿出現(xiàn)時(shí),RXNE位將置1,產(chǎn)生中斷,移位寄存器中接收的數(shù)據(jù)字節(jié)被拷貝到接收緩沖區(qū)中,讀取SPI_DR寄存器將SPI接收中斷標(biāo)志位(RXNE)清零。SPI接收中斷服務(wù)程序中讀取接收緩沖區(qū)中一個(gè)字節(jié)寄存器并退出中斷服務(wù)程序。

傳統(tǒng)的SPI通信設(shè)計(jì)時(shí),SPI從器件的移位寄存器受時(shí)鐘驅(qū)動(dòng)將采樣到的數(shù)據(jù)傳輸?shù)浇邮站彌_區(qū),而連續(xù)時(shí)鐘條件下由于時(shí)鐘抖動(dòng)和傳輸線路的影響,SPI主機(jī)FPGA產(chǎn)生的時(shí)序中片選信號(hào)CS的跳變沿與時(shí)鐘SCK存在相位的不確定性會(huì)導(dǎo)致數(shù)據(jù)傳輸不正常,因此上述SPI通信的軟件設(shè)計(jì)方法的關(guān)鍵就是僅在片選信號(hào)為低電平有效期間使能SPI從器件,使用SPI從器件硬核接收控制命令,并且在片選信號(hào)上升沿觸發(fā)復(fù)位SPI以消除最后一個(gè)時(shí)鐘沿引入的移位偏差。

3 結(jié)語(yǔ)

SPI作為一種常用的串行通信標(biāo)準(zhǔn),眾多的MCU中均內(nèi)置SPI接口,在層出不窮的嵌入式系統(tǒng)中不可避免地面臨與其他通信系統(tǒng)兼容的應(yīng)用需求,因此通過(guò)軟件方法拓展SPI接口的應(yīng)用具有重要的意義。本文基于MLVDS鏈路層標(biāo)準(zhǔn)的SPI總線接口提出的軟件處理方法可以很好地解決連續(xù)時(shí)鐘時(shí)序下的SPI半雙工通信,靈活、穩(wěn)定和實(shí)時(shí)性要求滿(mǎn)足設(shè)計(jì)需要,而且在硬件實(shí)現(xiàn)上簡(jiǎn)單可靠,并且兼容傳統(tǒng)非連續(xù)時(shí)鐘應(yīng)用場(chǎng)合,可應(yīng)用于后續(xù)類(lèi)SPI通信總線的工業(yè)或者航天嵌入式系統(tǒng)中。

猜你喜歡
低電平硬核寄存器
鐵道車(chē)輛高/低電平信號(hào)智能發(fā)生器設(shè)計(jì)
硬核爺爺煉成記
“硬核”舉措下的暖心舉動(dòng)
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
用“三個(gè)最嚴(yán)”彰顯“硬核”擔(dān)當(dāng)
陜西制造需要“硬核”
2017款凱迪拉克2.8L/3.0L/3.2L/3.6L車(chē)型低電平參考電壓總線電路圖
分簇結(jié)構(gòu)向量寄存器分配策略研究*
15-MeV電子直線加速器的低電平系統(tǒng)
集成電路靜態(tài)參數(shù)測(cè)試