999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STM32串口通信的車聯網終端設計

2018-08-23 03:22:18羅洋坤
無線電通信技術 2018年5期

羅洋坤

(湖南汽車工程職業學院,湖南 株洲 412001)

0 引言

隨著汽車行業朝向物聯網方向發展和應用,其車聯網的終端設備性能至關重要。普通的51單片機已經無法滿足車聯網高速數據處理需求,在性能方面也存在較大的不穩定性,因此研究應用一種廉價和性能滿足數據處理需求的終端設備成為關鍵。白昊等采用串口模塊,使串口設備以無線形式接入網絡[1];李曉丹設計的嵌入式網關系統由STM32通過串口與網絡模塊實現遠程控制[2];余歡等以STM32為硬件平臺開發了一套針對科研人員使用的農業環境數據采集終端系統,采集數據實時傳輸到遠端服務器的同時也保存至TF卡[3-4];陳振亞等采用STM32F407作為主控芯片實現與智慧社區綜合管理平臺服務器的數據處理[5]。由于在構建的車聯網系統中存在遠程傳輸數據的實時性,因此終端必須在很短的時間內完成大量連續數據的串口傳輸和內部批量處理數據[6]。

設計中采用STM32F407芯片強大的處理速度和高性能的外設為車聯網終端性能提供硬件保證,充分利用DMA和SPI技術相互結合發揮出STM32在終端數據處理性能,并使得遠程數據的傳輸過程更加穩定[7]。

1 車聯網終端設計

在考慮車聯網終端設計成本和性能整體因素后選擇STM32F407芯片作為終端設備處理芯片。STM32F407芯片基于ARM Cortex-M3架構,基于STM32F407芯片設計終端控制電路,STM32核心電路圖,如圖1所示。STM32F407擁有完善的時鐘啟動機制,在啟動時選擇系統時鐘,復位時內部8 MHz晶振作為CPU時鐘,可使用多個預比較器用于配置AHB頻率,包括高速APB2和低速APB1,高速APB2最高頻率為72 MHz,低速APB1最高頻率為36 MHz,這種時鐘模式和啟動機制完全滿足車聯網終端設備的要求,其時鐘頻率較高,保證了整個車聯網終端設備的運行速度。

STM32外圍接口豐富,時鐘頻率更快,模塊化程序結構。STM32F407除了在硬件方面性能卓越外,其精髓之一在于其擁有自己的庫。使用查找表的方式非常麻煩,其往往通過查閱來操作相關寄存器的配置是因為1或者0,這種方式的弊端在于使用頻繁造成巨大的時間消耗,會給進行二次開發帶來巨大壓力,方便進行二次開發才是最重要的規劃[8]。

STM32提供的許多函數接口,直接調用這些函數接口就可以配置STM32的寄存器,不用挖空心思去了解庫底層的寄存器操作,而且對于寄存器的操作根據函數接口和調用參數非常清晰。

在車聯網終端中STM32F407與多個SPI設備相連,必然要分清楚哪個SPI設備有效,于是SPI總線必然有一根片選信號線。SPI信號線選擇分析如圖1所示,可以看到MCU連接了3個SPI設備,獨立的片選信號SS1、SS2和SS3誰是低電平決定了哪個設備可以開始SPI通信。而SCK、MOSI和MISO這3個信號線則是被3個SPI設備共用。SCK是時鐘信號線(Serial Clock),STM32F407決定了時鐘頻率,MOSI是STM32F407控制芯片輸出輸入信號線,從STM32控制終端輸出數據,由其他接收設備接收。MISO是主機輸入從機輸出信號線,數據從從機輸出,由主機接收[9]。

圖1 SPI信號線選擇分析圖

2 SPI和DMA 通信數據傳輸

SPI在通信數據傳輸中其模式由時鐘極性(CPOL)和時鐘相位(CPHA)配置,2*2=4,意味著有4種模式。CPOL影響的是4根信號線之中的SCK信號線,CPOL=0時SCK=0;CPOL=1時SCK=1。CPOL的值決定了SPI通信設備處于空閑狀態時SCK信號線是高電平還是低電平。CPHA就是指是奇數邊沿采樣還是偶數邊沿采樣,其中的MOSI和MISO這2個信號線采樣[10]。使用SPI協議通信時,主機和從機的時序要保持一致,意味著主機和從機有一樣的SPI模式。STM32方面的用SPI來支持車聯網終端性能,這樣是為了使用DMA功能來提高數據傳輸和處理的實時性能,單次傳輸可選擇為8或16位,波特率預分頻系數(最大為FPCLK/2),時鐘極性(CPOL)和相位(CPHA)可編程設置,數據順序的傳輸順序可進行編程選擇,MSB在前或LSB 在前,可觸發中斷的專用發送和接收標志,使用DMA進行數據傳輸操作。

當從車聯網終端的外設接收數據時,MISO數據線接收信號通過移位寄存器處理發送到接收緩沖區,直接讀取接收緩沖區變量,當發數據給車聯網終端設備的其他外設時,先把數據寫入發送緩沖區變量,通過硬件用移位寄存器處理,再輸出到MOSI數據線。CPU先花時間把ADC外設寄存器的數據讀取回內存,也就是程序里面設定變量去存儲這些數據,然后CPU花時間對變量進行運算處理。問題在于怎樣不讓CPU花時間在把ADC外設的寄存器的數據讀取回內存這個過程上。在車聯網終端設備中STM32F407和其他外設以及內存之間的關系非常緊密,因此聯系它們的總線顯得至關重要,而數據要在內存和外設之間進行傳輸,或者外設直接互相傳輸,這樣的工作由DMA去做。

3 DMA 總線架構

在STM32中,DMA是以外設的身份被添加到Cortex內核之外的。STM32的系統結構如圖2所示。內核Cortex通過DCODE經過總線矩陣協調,把數據再存放到SRAM中,這個過程非常浪費CPU,使用DMA的優勢在于,其DMA總線與矩陣協調,AHB把車聯網終端設備的外設ADC數據經過DMA通道之后,自動保存到內存SRAM中[11]。該過程獨立于STM32F407內核,數據轉移的同時CPU可以做其他事情,此時的CPU已經告別了中轉站的身份。DMA直接存儲器存取中的“直接”就體現在點到點的數據轉移[12-13]。

圖2 STM32的系統結構

4 性能分析

通過結合SPI和DMA的優勢,使得車聯網終端設備中STM32F407可以發揮出其最佳性能,通過測試,STM32F407可以高速處理目前車聯網的終端數據信息,車聯網終端數據延時過長得到了根本改善,性能也非常穩定,連續測試20天沒有出現死機和數據丟失的情況。

4.1 SPI和DMA程序優化分析

程序在軟件程序的改進優化方面,通過以下過程實現了SPI和DMA技術結合的最佳軟件性能。其中,main函數首先調用了USART1_Config()、DMA_Config()及LED_GPIO_Config()分別配置串口和DMA。在進行DMA傳輸的過程中CPU還在控制著其他車聯網程序過程。需要特別主意的是USART_DMACMD(USART1,USART_DMAREQ_TX,ENABLE)是庫函數,調用這個庫函數就實現了允許車聯網終端串口外設向DMA發出請求,請求DMA傳輸數據。調用這個函數之后,DMA開始響應串口的請求,根據DMA配置把數組中的數據一個個地轉移到終端車聯網設備的串口數據寄存器,并由串口向外發送這些數據。

4.2 串口的DMA配置分析

前面車聯網終端串口向DMA發出數據傳輸請求,那么需要對串口的DMA初始化配置。為了開啟外設的DMA時鐘,填充要進行DMA傳輸的初始化結構體,使能DMA功能。外設地址是數據寄存器的地址,通過DMA把內存數組里的數據轉移保存到這個數據寄存器中,串口直接按照串口協議自動發送這個數據寄存器接收到的數據[14]。這里需要注意的是外設地址需要算出來進行宏定義的,但是地址不需要自增,而內存地址往往是一個數組名,這樣就需要進行自增設置。在使能DMA中選擇通道不是隨便選擇,需要根據映射圖配置。外設在使用DMA前需要向DMA控制器發送請求信息,DMA在接收到請求后才會根據DMA配置進行數據轉移。

在車聯網設計的終端中DMA被配置為:數據傳輸方向從內存(數組SendBuff)到USART1外設的數據寄存器(USART1_DR_Base),要傳輸的數據總量為SENDBUFF_SIZE(5 000字節),并且傳輸時內存地址自增,外設地址固定,DMA模式為非循環模式,DMA通道為DMA1的CHANNEL4。在車聯網終端設備的軟件中通過system_stm32f10x.c文件進行時鐘配置,包括系統時鐘和總線時鐘,STM32F407的系統頻率并非等同于外部晶振頻率,設備系統通過STM32F407的內部寄存器對晶振頻率進行倍頻和分頻處理,或者使用STM32F407自帶的時鐘。

在車聯網終端設備上的外設都與該時鐘頻率密切關聯,因此在車聯網終端設備的程序設計上對該文件的時鐘配置至關重要。此外misc.c文件包括了車聯網終端外設對STM32F407芯片中的中斷向量控制器的訪問函數,因此在配置車聯網終端設備的STM32407中斷時,要把該文件添加到整個車聯網軟件工程中。最后還有一個配置使用了與外設的頭文件stm32f10x_conf.h[15]。

5 結束語

針對車聯網遠程短時間內連續傳輸和處理大量數據的問題,設計采用STM32強大的外設為車聯網終端性能提供了硬件保證,利用DMA和SPI技術相互結合發揮出STM32在終端數據處理和傳輸的最佳性能[16]。經過測試分析,串口通信性能的提高可以使得車聯網信息處理速度更快,使得車聯網系統更加適應高速數據趨勢。但是網絡通信的實時性能以后會越來越高標準要求,因此如何組建更好的終端設計結構將是進一步研究的課題。

主站蜘蛛池模板: 97在线免费| 久久精品国产精品青草app| 国产导航在线| 久久夜色精品| 免费人欧美成又黄又爽的视频| 亚欧成人无码AV在线播放| 亚洲va欧美ⅴa国产va影院| 国产亚洲美日韩AV中文字幕无码成人 | 情侣午夜国产在线一区无码| 日韩免费视频播播| 成人小视频网| 欧美日本二区| 久久人搡人人玩人妻精品一| 91美女视频在线观看| 999精品色在线观看| 国产成人综合在线视频| 97视频精品全国免费观看 | 91精品国产综合久久不国产大片| 亚洲精品国产精品乱码不卞| 色播五月婷婷| 久久综合五月婷婷| 欧美性色综合网| 久草视频一区| 57pao国产成视频免费播放| 男女猛烈无遮挡午夜视频| 狠狠色噜噜狠狠狠狠奇米777| 欧美亚洲香蕉| 国产性生大片免费观看性欧美| 欧美视频在线观看第一页| 亚洲天堂精品视频| 欧美在线伊人| 久久中文电影| 自偷自拍三级全三级视频| 国产美女在线观看| 欧美一区二区三区不卡免费| 91在线播放国产| 国产凹凸视频在线观看| 久热re国产手机在线观看| 日韩欧美国产中文| 久久这里只有精品23| 97视频免费看| 欧美日韩国产在线人成app| 找国产毛片看| 性视频久久| 免费女人18毛片a级毛片视频| 亚洲一区第一页| 国产成人高清亚洲一区久久| 中文字幕免费播放| 久久精品女人天堂aaa| 播五月综合| 99视频在线观看免费| 精品国产成人a在线观看| 天天综合网亚洲网站| 亚洲成aⅴ人片在线影院八| 中国精品自拍| 97se亚洲综合| 一本大道无码高清| 亚洲第一黄色网址| 3344在线观看无码| 亚洲成人手机在线| 亚洲国产成人精品青青草原| 亚洲日本一本dvd高清| 中文字幕自拍偷拍| 欧美va亚洲va香蕉在线| 真人高潮娇喘嗯啊在线观看| 国产精品三级专区| 欧美日韩北条麻妃一区二区| 亚洲国产综合精品一区| 国产一区二区福利| 国产成人做受免费视频| 99久久精品视香蕉蕉| 亚洲欧美日本国产专区一区| 97久久超碰极品视觉盛宴| 亚洲美女一区| 久久精品女人天堂aaa| 高清乱码精品福利在线视频| 国产农村1级毛片| 色偷偷综合网| 国产成人综合亚洲欧美在| 亚洲一区精品视频在线| 高潮爽到爆的喷水女主播视频 | 99热国产在线精品99|