白丝美女被狂躁免费视频网站,500av导航大全精品,yw.193.cnc爆乳尤物未满,97se亚洲综合色区,аⅴ天堂中文在线网官网

一種臺區(qū)智能融合終端SPI通信中不定長數(shù)據(jù)幀的接收方法

專利號
CN115834739B
公開日期
2023-04-25
申請人
石家莊科林電氣股份有限公司; 石家莊科林物聯(lián)網(wǎng)科技有限公司(河北省石家莊市鹿泉區(qū)紅旗大街南降壁路段)
發(fā)明人
劉巍; 翟志國; 陸志遠(yuǎn); 雷軒; 田軼; 崔振偉; 杜瑞冰; 蘆斌; 白明; 劉慶亮
IPC分類
H04L69/22; H04L69/24; H04L12/40
技術(shù)領(lǐng)域
spi,cs,外部中斷,中斷,mcu,字節(jié),緩沖區(qū),irq,數(shù)據(jù),不定
地域: 河北省 河北省石家莊市

摘要

本申請適用于通信技術(shù)領(lǐng)域,提供了一種臺區(qū)智能融合終端SPI通信中不定長數(shù)據(jù)幀的接收方法,包括:初始化從機(jī)的SPI接口,對從機(jī)的MCU的SPI寄存器進(jìn)行初始配置,并初始化SPI寄存器的接收中斷程序;建立SPI寄存器的接收緩沖區(qū);對MCU的外部中斷寄存器進(jìn)行初始配置,將CS片選信號復(fù)用為外部中斷的觸發(fā)管腳,并配置為在CS片選信號上升沿觸發(fā)CS外部中斷程序;基于CS片選信號和接收中斷程序?qū)⒔邮盏降膯巫止?jié)數(shù)據(jù)放入接收緩沖區(qū);基于CS片選信號和CS外部中斷信號從接收緩沖區(qū)中取出收到的一幀完整的數(shù)據(jù)。本申請能夠在處理器資源有限,且通信幀協(xié)議中存在長度字段不固定時,實(shí)現(xiàn)SPI不定長協(xié)議幀的接收功能。

說明書

1 2 3 4 5
一種臺區(qū)智能融合終端SPI通信中不定長數(shù)據(jù)幀的接收方法 技術(shù)領(lǐng)域 [0001] 本申請屬于通信技術(shù)領(lǐng)域,尤其涉及一種臺區(qū)智能融合終端SPI通信中不定長數(shù)據(jù)幀的接收方法。 背景技術(shù) [0002] 在臺區(qū)智能融合終端SPI(Serial?Peripheralinterface,串行外圍設(shè)備接口)通信的實(shí)際應(yīng)用中,多數(shù)為不定長的通信幀協(xié)議,接收方需要在接收時辨識出每一個完整的幀,便于進(jìn)行后續(xù)從完整幀中獲取有效數(shù)據(jù)。 [0003] 現(xiàn)有SPI不定長接收技術(shù)有兩種: [0004] 一種是MCU(Microcontroller?Unit,微控制單元))軟件采用在SPI中斷接收程序中根據(jù)通信協(xié)議幀格式,解析出長度字段,再根據(jù)該長度繼續(xù)在SPI中斷服務(wù)函數(shù)中進(jìn)行數(shù)據(jù)接收。這種方法需要MCU軟件在SPI中斷接收程序中對每個接收到的字節(jié)都進(jìn)行幀格式解析,解析過程繁瑣,對于部分幀格式中長度字段不固定的情況,該方法無法實(shí)現(xiàn)接收完整幀。 [0005] 另一種是MCU軟件采用DMA(Direct?Memory?Access,直接存儲器訪問)技術(shù)以固定長度持續(xù)接收,該方法雖然不會造成數(shù)據(jù)丟失,但由于無法得知SPI總線的空閑狀態(tài),造成多幀堆疊在DMA緩沖區(qū)中,需要對緩沖區(qū)中的數(shù)據(jù)進(jìn)行摘取辨識,且需要半幀拼疊,過程繁瑣,在遇到MCU處理器DMA資源有限的情況時,MCU無法采用DMA方法進(jìn)行數(shù)據(jù)接收。 發(fā)明內(nèi)容 [0006] 為克服相關(guān)技術(shù)中存在的問題,本申請實(shí)施例提供了一種臺區(qū)智能融合終端SPI通信中不定長數(shù)據(jù)幀的接收方法,以解決在從板MCU處理器DMA資源有限且通信幀協(xié)議中存在長度字段不固定的情況下,無法實(shí)現(xiàn)接收完整幀的問題。 [0007] 本申請是通過如下技術(shù)方案實(shí)現(xiàn)的: [0008] 第一方面,本申請實(shí)施例提供了臺區(qū)智能融合終端SPI通信中不定長數(shù)據(jù)幀的接收方法,包括: [0009] 初始化從機(jī)的SPI接口,對從機(jī)的MCU的SPI寄存器進(jìn)行初始配置,并初始化SPI寄存器的接收中斷程序SPI_IRQ; [0010] 建立SPI寄存器的接收緩沖區(qū); [0011] 對MCU的外部中斷寄存器進(jìn)行初始配置,將CS片選信號復(fù)用為外部中斷的觸發(fā)管腳,并將觸發(fā)管腳配置為在CS片選信號上升沿觸發(fā)CS外部中斷信號; [0012] 基于CS片選信號和接收中斷程序SPI_IRQ將接收到的單字節(jié)數(shù)據(jù)放入接收緩沖區(qū); [0013] 基于CS片選信號和CS外部中斷信號從接收緩沖區(qū)中取出收到的一幀完整的數(shù)據(jù); 一幀完整的數(shù)據(jù)包括具有字節(jié)累計長度的單字節(jié)數(shù)據(jù)。 [0014] 在第一方面的一種可能的實(shí)施方式中,初始化MCU的SPI接口,對MCU的從機(jī)的配置寄存器進(jìn)行初始配置,包括: [0015] 配置SPI接口的通信模式; [0016] 配置SPI寄存器的CS片選信號控制方式為硬件片選信號NSS_Hard;硬件片選信號NSS_Hard用于使從機(jī)根據(jù)主機(jī)的SPI?接口的CS片選信號電平自動開啟接收狀態(tài)。 [0017] 在第一方面的一種可能的實(shí)施方式中,配置SPI接口的通信模式,包括: [0018] 將MCU的?SPI接口設(shè)置為主機(jī)發(fā)送,從機(jī)接收模式,并配置SPI接口的時鐘的極性和相位與主機(jī)的時鐘的極性和相位一致。 [0019] 在第一方面的一種可能的實(shí)施方式中,初始化SPI寄存器的接收中斷程序SPI_IRQ,包括: [0020] 配置中斷事件接收非空標(biāo)志RXNE;非空標(biāo)志RXNE用于當(dāng)MCU內(nèi)部SPI接收數(shù)據(jù)非空時,觸發(fā)接收中斷程序SPI_IRQ。 [0021] 在第一方面的一種可能的實(shí)施方式中,對MCU的外部中斷寄存器進(jìn)行初始配置,包括: [0022] 利用MCU事件線邊沿檢測器,設(shè)置CS外部中斷處理程序,并開啟IO復(fù)用外設(shè)時鐘APB_AFIO,開啟CS片選信號的復(fù)用功能;復(fù)用功能用于將CS片選信號復(fù)用為外部中斷的觸發(fā)管腳,并將觸發(fā)管腳配置為在CS片選信號上升沿觸發(fā)CS外部中斷處理程序。 [0023] 在第一方面的一種可能的實(shí)施方式中,基于CS片選信號和接收中斷程序SPI_IRQ將接收到的單字節(jié)數(shù)據(jù)放入接收緩沖區(qū),包括: [0024] 當(dāng)主機(jī)拉低CS片選信號,開始發(fā)送數(shù)據(jù)時,觸發(fā)從機(jī)的接收中斷程序SPI_IRQ,將接收到的單字節(jié)數(shù)據(jù)放入接收緩沖區(qū),并保存接收到的單字節(jié)數(shù)據(jù)的字節(jié)累計長度。 [0025] 在第一方面的一種可能的實(shí)施方式中,基于CS片選信號和CS外部中斷處理程序從接收緩沖區(qū)中取出收到的一幀完整的數(shù)據(jù),包括: [0026] 當(dāng)主機(jī)拉高CS片選信號時,?CS片選信號上升沿觸發(fā)從機(jī)的CS外部中斷信號EXTI; CS外部中斷信號EXTI由CS外部中斷處理程序控制; [0027] 在外部中斷處理程序中,從接收緩沖區(qū)中按照字節(jié)累計長度取出收到的一幀完整的數(shù)據(jù)。

權(quán)利要求

1 2
1.一種臺區(qū)智能融合終端SPI通信中不定長數(shù)據(jù)幀的接收方法,其特征在于,包括: 初始化從機(jī)的SPI接口,對所述從機(jī)的MCU的SPI寄存器進(jìn)行初始配置,并初始化SPI寄存器的接收中斷程序SPI_IRQ; 建立所述SPI寄存器的接收緩沖區(qū); 對所述MCU的外部中斷寄存器進(jìn)行初始配置,將CS片選信號復(fù)用為外部中斷的觸發(fā)管腳,并將所述觸發(fā)管腳配置為在所述CS片選信號上升沿觸發(fā)CS外部中斷信號; 基于所述CS片選信號和所述接收中斷程序SPI_IRQ將接收到的單字節(jié)數(shù)據(jù)放入所述接收緩沖區(qū);所述基于所述CS片選信號和所述接收中斷程序SPI_IRQ將接收到的單字節(jié)數(shù)據(jù)放入所述接收緩沖區(qū),包括:當(dāng)主機(jī)拉低所述CS片選信號,開始發(fā)送數(shù)據(jù)時,觸發(fā)所述從機(jī)的所述接收中斷程序SPI_IRQ,將接收到的單字節(jié)數(shù)據(jù)放入所述接收緩沖區(qū),并保存接收到的所述單字節(jié)數(shù)據(jù)的字節(jié)累計長度; 基于所述CS片選信號和所述CS外部中斷信號從所述接收緩沖區(qū)中取出收到的一幀完整的數(shù)據(jù);所述一幀完整的數(shù)據(jù)包括具有字節(jié)累計長度的所述單字節(jié)數(shù)據(jù); 所述基于所述CS片選信號和所述CS外部中斷處理程序從所述接收緩沖區(qū)中取出收到的一幀完整的數(shù)據(jù),包括:當(dāng)主機(jī)拉高CS片選信號時,CS片選信號上升沿觸發(fā)所述從機(jī)的CS外部中斷信號EXTI;所述CS外部中斷信號EXTI由所述CS外部中斷處理程序控制;在外部中斷處理程序中,從所述接收緩沖區(qū)中按照所述字節(jié)累計長度取出收到的一幀完整的數(shù)據(jù)。 2.如權(quán)利要求1所述的臺區(qū)智能融合終端SPI通信中不定長數(shù)據(jù)幀的接收方法,其特征在于,所述初始化MCU的SPI接口,對所述MCU的從機(jī)的配置寄存器進(jìn)行初始配置,包括: 配置所述SPI接口的通信模式; 配置SPI寄存器的CS片選信號控制方式為硬件片選信號NSS_Hard;所述硬件片選信號NSS_Hard用于使所述從機(jī)根據(jù)主機(jī)的SPI?接口的CS片選信號電平自動開啟接收狀態(tài)。 3.如權(quán)利要求2所述的臺區(qū)智能融合終端SPI通信中不定長數(shù)據(jù)幀的接收方法,其特征在于,所述配置所述SPI接口的通信模式,包括: 將所述MCU的SPI接口設(shè)置為主機(jī)發(fā)送,從機(jī)接收模式,并配置所述SPI接口的時鐘的極性和相位與主機(jī)的時鐘的極性和相位一致。 4.如權(quán)利要求1所述的臺區(qū)智能融合終端SPI通信中不定長數(shù)據(jù)幀的接收方法,其特征在于,所述初始化SPI寄存器的接收中斷程序SPI_IRQ,包括:
微信群二維碼
意見反饋