亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于STM32和FreeRTOS的溫度測量系統(tǒng)設(shè)計

        2019-04-28 05:58:02趙波
        電子技術(shù)與軟件工程 2019年3期
        關(guān)鍵詞:測量系統(tǒng)設(shè)計

        文/趙波

        ●本文獲得上海海洋大學(xué)校級重點課程建設(shè)項目(A1-0201-00-1023)資助。

        1 引言

        溫度是日常生活及工業(yè)生產(chǎn)中重要的物理量,因此對溫度的測量及監(jiān)測有著重要的意義。隨著現(xiàn)代電子技術(shù)的發(fā)展,溫度測量的方法及對溫度信息的采集使用也發(fā)生了很大的改變。本文設(shè)計了一種基于STM32F103RBT6單片機及FreeRTOS實時嵌入式系統(tǒng)的溫度測量系統(tǒng)。STM32F103RBT6是一款以ARMCortex-M3為內(nèi)核的高性能微控制器,目前廣泛應(yīng)用于各種工業(yè)場合。FreeRTOS是一種輕量級可剝奪型多任務(wù)實時操作系統(tǒng),目前得到廣泛應(yīng)用。

        2 系統(tǒng)組成

        本系統(tǒng)主要包括:STM32 NUCLEOF103RB核心板、0.96寸OLED顯示模塊、串口模塊、DS18B20溫度測量模塊。

        STM32 NUCLEO開發(fā)平臺由ST-LINK/V2-1仿真器模塊和主MCU核心板模塊兩個部分組成,是一款易用性好、可擴展性佳的低成本平臺。DS18B20是美國DALLAS公司生產(chǎn)的單總線數(shù)字溫度傳感器,溫度測量范圍為-55~+128,使用時只需一根信號線,大大簡化了硬件設(shè)計。為了實現(xiàn)測量系統(tǒng)與上位機的通許,本系統(tǒng)使用了串口模塊,實現(xiàn)異步串口與USB接口的轉(zhuǎn)換。0.96寸OLED模塊用來實現(xiàn)溫度數(shù)據(jù)的顯示,該模塊采用SPI接口與MCU相連,軟硬件設(shè)計都較為方便。

        3 硬件設(shè)計

        STM32 NUCLEO-F103RB核心板的板載MCU型號是STM32F103RBT6,該芯片具有豐富的片上資源,本設(shè)計中主要使用的資 源 包 括:GPIO、SPI、USART等。 該 核心板默認(rèn)不帶外部晶振,本設(shè)計使用的是STM32F103RBT6芯片的內(nèi)部振蕩電路,工作頻率配置為64MHz。STM32F103RBT6有2個片內(nèi)SPI接口,設(shè)計中使用SPI2與OLED相連。串口模塊與STM32F103RBT6的USART2相連實現(xiàn)核心板與上位機的通訊。DS18B20測溫模塊經(jīng)上拉電阻與STM32F103RBT6的GPIO相連實現(xiàn)測溫控制。設(shè)計中使用STM32CubeMX進行引腳分配并初始化。

        4 軟件設(shè)計

        本文利用STM32CubeMX可視化工具對STM32F103RBT6單片的GPIO、SPI、USART的工作模式和相關(guān)參數(shù)進行配置完成初始化工作,并導(dǎo)入以上片上資源的HAL庫文件,生成Keil工程。利用HAL庫函數(shù)編寫了DS18B20、OLED、異步串行口模塊的驅(qū)動程序。

        4.1 系統(tǒng)任務(wù)設(shè)計

        FreeRTOS是一個輕型的實時操作系統(tǒng)內(nèi)核,功能包括:任務(wù)管理、時間管理、信號量、消息隊列、內(nèi)存管理、記錄功能、軟件定時器、協(xié)程等,可基本滿足較小系統(tǒng)的需要。FreeRTOS內(nèi)核支持優(yōu)先級調(diào)度算法,每個任務(wù)可根據(jù)重要程度的不同被賦予一定的優(yōu)先級,CPU總是讓處于就緒態(tài)的、優(yōu)先級最高的任務(wù)先運行。FreeRTOS內(nèi)核同時支持輪換調(diào)度算法,系統(tǒng)允許不同的任務(wù)使用相同的優(yōu)先級,在沒有更高優(yōu)先級任務(wù)就緒的情況下,同一優(yōu)先級的任務(wù)共享CPU的使用時間。本文將整個系統(tǒng)程序劃分為3個任務(wù)進行實現(xiàn),任務(wù)函數(shù)名稱、優(yōu)先級分配、任務(wù)功能如表1所示。

        系統(tǒng)任務(wù)中,DS18B20溫度測量任務(wù)優(yōu)先級最低,OLED顯示和串口發(fā)送任務(wù)優(yōu)先級較高。正常工作時應(yīng)該首先獲得測量數(shù)據(jù),然后再進行顯示和傳送。為了實現(xiàn)這一工作流程,在這里使用了FreeRTOS的消息隊列功能。TASK_1完成一次溫度測量后,發(fā)送消息隊列給TASK_2。TASK_2在接收到TASK_1的消息隊列之前處于阻塞狀態(tài),即使有較高優(yōu)先級也不會被系統(tǒng)調(diào)度執(zhí)行,只有接收到TASK_1的消息隊列之后才會被調(diào)度執(zhí)行。TASK_2在執(zhí)行過程中會向更高優(yōu)先級的TASK_3發(fā)送消息隊列,使處于阻塞狀態(tài)的TASK_3進入就緒狀態(tài),從而被系統(tǒng)調(diào)度執(zhí)行。這樣就能夠?qū)崿F(xiàn)設(shè)計目的。

        4.2 任務(wù)代碼實現(xiàn)

        FreeRTOS 9.0的任務(wù)創(chuàng)建函數(shù)為xTaskCreate,該函數(shù)為實時操作系統(tǒng)中主要的函數(shù),利用這個函數(shù)可以創(chuàng)建對所需要完成的任務(wù)的控制塊。

        根據(jù)以上設(shè)計思想,系統(tǒng)需創(chuàng)建3個任務(wù)。任務(wù)創(chuàng)建代碼如下:

        為了實現(xiàn)任務(wù)間的數(shù)據(jù)傳遞和系統(tǒng)的調(diào)度,本設(shè)計用到了FreeRTOS隊列功能,因此也創(chuàng)建了兩個隊列對象:

        xQueue1=xQueueCreate(1,sizeof(int));//新建隊列

        xQueue2=xQueueCreate(1,sizeof(int));

        表1:任務(wù)信息

        任務(wù)Task_1的代碼如下:; // 進入臨界區(qū),防止破壞DS18B20讀寫時序

        任務(wù)Task_1每隔100ms進行一次溫度測量,測量完成后,利用FreeRTOS的隊列將溫度數(shù)據(jù)傳遞到已經(jīng)創(chuàng)建好的隊列xQueue1中。該隊列中的數(shù)據(jù)可以被任務(wù)Task_2讀取,從而實現(xiàn)溫度數(shù)據(jù)的顯示。

        任務(wù)Task_2的代碼如下:

        任務(wù)Task_2從隊列xQueue1讀取溫度數(shù)據(jù),并利用OLED進行顯示,顯示完畢后,再將溫度數(shù)據(jù)發(fā)送給隊列xQueue2。當(dāng)隊列xQueue1為空時,任務(wù)Task_2處于阻塞狀態(tài),直到隊列中有數(shù)據(jù)到來。

        任務(wù)Task_3從隊列xQueue2讀取溫度數(shù)據(jù),利用異步串口發(fā)送至上位機。當(dāng)隊列xQueue2為空時,任務(wù)Task_3處于阻塞狀態(tài),直到隊列中有數(shù)據(jù)到來。

        在FreeRTOS實時操作系統(tǒng)的調(diào)度下,系統(tǒng)完成測量、顯示、上位機數(shù)據(jù)傳送等任務(wù)。實驗證明該設(shè)計能夠達到既定的目的。

        5 總結(jié)

        本文在設(shè)計過程中,利用STM32cubeMX開發(fā)工具實現(xiàn)了FreeRTOS的快速移植。對系統(tǒng)任務(wù)及優(yōu)先級進行了合理劃分,實現(xiàn)了預(yù)期的設(shè)計目的。高效的開發(fā)工具降低了開發(fā)難度,縮短了開發(fā)時間。FreeRTOS實時嵌入式操作系統(tǒng)的引入使系統(tǒng)設(shè)計更加靈活簡便,并且能夠方便的進行功能擴展。如果要實現(xiàn)多路溫度測量或增加其他功能,在本系統(tǒng)的基礎(chǔ)上增加相應(yīng)的任務(wù)即可實現(xiàn)。

        猜你喜歡
        測量系統(tǒng)設(shè)計
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        把握四個“三” 測量變簡單
        滑動摩擦力的測量和計算
        瞞天過?!律O(shè)計萌到家
        滑動摩擦力的測量與計算
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        設(shè)計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        日韩高清不卡一区二区三区| 四虎永久在线精品免费观看地址| 无码va在线观看| 国产在线观看免费观看| 国产成人av一区二区三区在线| 免费观看一区二区| 久久久一本精品久久久一本| 青青草精品在线视频观看| 99国产精品人妻噜啊噜| 国产黄三级三·级三级| 国产熟女乱综合一区二区三区| 国产熟女一区二区三区不卡| 精品久久久久久无码人妻热| 澳门精品无码一区二区三区| 国产成人亚洲合色婷婷| 国产精品视频自拍在线| 无码吃奶揉捏奶头高潮视频| 青春草国产视频| 日本免费三片在线播放| 亚洲av无码国产精品久久| 国产白丝无码视频在线观看| 手机看片福利日韩国产| 亚洲成在人线天堂网站| 夜夜躁狠狠躁日日躁视频| 国产人澡人澡澡澡人碰视频| 久久久久无码中文字幕| 久久蜜桃资源一区二区| 帮老师解开蕾丝奶罩吸乳网站| 在线一区不卡网址观看| 国产精品一级黄色大片| 欧美xxxxx高潮喷水| 牲欲强的熟妇农村老妇女| 久久久久久久尹人综合网亚洲 | 亚洲中文字幕有码av| 精品少妇一区二区三区免费| 在线看片免费人成视频久网下载| 精品 无码 国产观看| 偷窥偷拍一区二区三区| 久久久久亚洲av成人片| 无码av一区二区大桥久未 | 日韩精品极视频在线观看免费|