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

        ?

        基于STM32的CAN總線數(shù)據(jù)采集卡設(shè)計(jì)

        2020-05-23 03:18:12李蛟龍任子真
        關(guān)鍵詞:采集卡電路設(shè)計(jì)電平

        李蛟龍,任子真

        (沈陽化工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,遼寧 沈陽 110142)

        數(shù)據(jù)采集(DAQ)是指在傳感器和其他設(shè)備中對(duì)模擬和數(shù)字單元進(jìn)行非電量或電量信號(hào)的自動(dòng)采集和分析處理[1].在工廠里監(jiān)控環(huán)境及設(shè)備的正常運(yùn)轉(zhuǎn),需要測量電流、電壓、溫度等參數(shù).這時(shí)數(shù)據(jù)采集的正確性就顯得尤為重要,也對(duì)數(shù)據(jù)采集卡提出了較高的要求.現(xiàn)階段國內(nèi)外板卡均參照IBM-PC機(jī)的總線技術(shù)標(biāo)準(zhǔn)設(shè)計(jì)和生產(chǎn),用戶只要把這類板卡插入IBM-PC機(jī)主板上相應(yīng)的I/O擴(kuò)展槽中就可以迅速方便地構(gòu)成一個(gè)數(shù)據(jù)采集與處理系統(tǒng),但相對(duì)成本較高,不便于攜帶.所以本文提出了一種低成本、高性能的數(shù)據(jù)采集卡設(shè)計(jì)方案,便于攜帶且性價(jià)比較高.采用STM32作為微控制器,并用內(nèi)嵌式A/D轉(zhuǎn)換模塊將采集的信號(hào)進(jìn)行轉(zhuǎn)換、CAN總線進(jìn)行傳輸?shù)囊惶讛?shù)據(jù)采集卡程序,同時(shí)配備上位機(jī)形成一套完整的數(shù)據(jù)采集系統(tǒng).該系統(tǒng)具有高性能、低成本、方便攜帶的特點(diǎn).數(shù)據(jù)采集卡的設(shè)計(jì)包括嵌入式硬件設(shè)計(jì)和嵌入式軟件設(shè)計(jì)兩部分:硬件設(shè)計(jì)包括A/D轉(zhuǎn)換電路設(shè)計(jì)和CAN總線電路設(shè)計(jì);軟件設(shè)計(jì)包括 A/D轉(zhuǎn)換程序設(shè)計(jì)和CAN總線程序設(shè)計(jì).

        1 總體設(shè)計(jì)

        采集卡的硬件設(shè)計(jì)主要是最小系統(tǒng)電路的設(shè)計(jì)和轉(zhuǎn)換傳輸?shù)碾娐吩O(shè)計(jì).最小系統(tǒng)電路的主要作用是形成單片機(jī)的基本功能電路;轉(zhuǎn)換和傳輸?shù)碾娐酚脕韺㈦妷?、電流、溫度信?hào)轉(zhuǎn)化及數(shù)據(jù)的實(shí)時(shí)傳輸.根據(jù)控制要求向MCU發(fā)出響應(yīng),采集所需要的信號(hào),收集到的信號(hào)將傳輸?shù)絊TM32芯片,在上位機(jī)下載程序.采集卡的軟件設(shè)計(jì)主要是由A/D信號(hào)采集模塊、CAN總線數(shù)據(jù)傳輸模塊、I/O口輸入輸出程序組成.采集卡的總體設(shè)計(jì)框圖如圖1所示.

        圖1 總體設(shè)計(jì)

        2 硬件設(shè)計(jì)

        2.1 最小系統(tǒng)電路設(shè)計(jì)

        STM32F103xx增強(qiáng)型系列由意法半導(dǎo)體集團(tuán)設(shè)計(jì),使用高性能ARMCortex-M3、32位的RISC內(nèi)核,工作頻率為72 MHz,內(nèi)置高速存儲(chǔ)器(高達(dá)128 kB的閃存和20 kB的SRAM),豐富的I/O端口和外圍設(shè)備及APB總線[2].所有類型的設(shè)備包含2個(gè)12位的ADC、3個(gè)通用16位定時(shí)器和1個(gè)PWM定時(shí)器,也包括標(biāo)準(zhǔn)和先進(jìn)的通信接口:I2C、SPI、3個(gè)USART、1個(gè)USB和1個(gè)CAN.具有高性能、實(shí)時(shí)功能、數(shù)字信號(hào)處理、低功耗和低電壓運(yùn)行特性,同時(shí)保持了高集成度和易開發(fā)性的特點(diǎn)[3].圖2為最小系統(tǒng)電路圖.

        圖2 最小系統(tǒng)電路

        2.2 A/D轉(zhuǎn)換電路設(shè)計(jì)

        A/D轉(zhuǎn)換是將模擬信號(hào)轉(zhuǎn)變?yōu)閿?shù)字信號(hào),通過特定的電路來實(shí)現(xiàn).模擬量可以是電壓、電流等電信號(hào),也可以是壓力、溫度、濕度、位移、聲音等非電信號(hào).在A/D轉(zhuǎn)換之前,A/D轉(zhuǎn)換器的輸入信號(hào)必須是通過各種傳感器將各種物理量轉(zhuǎn)換成的電壓信號(hào).

        ADC是一種逐次逼近型模擬數(shù)字轉(zhuǎn)換器,有18個(gè)通道,可測量16個(gè)外部和2個(gè)內(nèi)部信號(hào)源.各通道的A/D轉(zhuǎn)換可以單次、連續(xù)、掃描或者間接模式執(zhí)行,ADC的結(jié)果可以用對(duì)齊的方式存儲(chǔ)在16位的數(shù)據(jù)寄存器中[4].

        轉(zhuǎn)換的核心是將供電電路進(jìn)行必要的降壓和升壓,單片機(jī)A/D輸入信號(hào)的電壓范圍從0~3.3 V提高至-12~12 V,經(jīng)過電壓輸入、轉(zhuǎn)入輸入通道、轉(zhuǎn)換順序、觸發(fā)源、轉(zhuǎn)換時(shí)間、中斷、電壓轉(zhuǎn)換的步驟完成ADC轉(zhuǎn)換.

        2.3 CAN總線設(shè)計(jì)

        CAN總線不同于I2C總線和SPI總線.CAN總線定義了一個(gè)更優(yōu)秀的物理層和數(shù)據(jù)鏈路層,是一個(gè)真正的多主機(jī)網(wǎng)絡(luò).當(dāng)總線處于空閑狀態(tài)時(shí),任何節(jié)點(diǎn)單元都可以應(yīng)用成為主機(jī).其原理為首先訪問總線的節(jié)點(diǎn),節(jié)點(diǎn)可以獲得總線的控制權(quán),當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)獲取總線的控制權(quán)時(shí),會(huì)發(fā)生仲裁事件,高優(yōu)先級(jí)的節(jié)點(diǎn)將獲得總線控制權(quán).

        CAN總線的物理連接只需兩根線,常稱為CAN_H和CAN_L,通過差分信號(hào)進(jìn)行數(shù)據(jù)的傳輸.CAN總線有兩種電平,分別為隱形電平和顯性電平,因此兩種電平有著以下關(guān)系:若隱形電平相遇,則總線表現(xiàn)為隱形電平;若顯性電平相遇,則總線表現(xiàn)為顯性電平;若隱形電平和顯性電平相遇,則總線表現(xiàn)為顯性電平[5].CAN總線收發(fā)示意圖如圖3所示.

        圖4、圖5分別為采集卡電路板的打樣圖和實(shí)物圖.

        圖3 CAN收發(fā)示意圖

        圖4 電路板打樣圖

        圖5 電路板實(shí)物圖

        3 軟件設(shè)計(jì)

        3.1 A/D轉(zhuǎn)換程序設(shè)計(jì)

        (1)配置RCC寄存器組,配置PLL時(shí)鐘為72 MHz并作為主時(shí)鐘,配置PCLK2為PLL的2分頻,并配置ADC時(shí)鐘為PCLK2的4分頻.

        (2)打開ADC設(shè)備時(shí)鐘,同時(shí)打開GPIOB設(shè)備時(shí)鐘.

        (3)配置GPIOB.0引腳為模擬輸入模式.

        (4)初始化ADC寄存器組,使用ADC1第8轉(zhuǎn)換通道,轉(zhuǎn)換通道數(shù)為1,采樣時(shí)間為60 s.

        (5)配置USART寄存器組.

        ADC完成單次轉(zhuǎn)換所需時(shí)間為

        tcov=Nperiod/fadc.

        其中:t為單次轉(zhuǎn)換時(shí)間;N為整個(gè)轉(zhuǎn)換所需周期;f為時(shí)鐘頻率.

        ADC轉(zhuǎn)換與采樣電壓之間的關(guān)系:STM32微控制器的ADC為12位精度,則表示其轉(zhuǎn)換結(jié)果數(shù)據(jù)最大為0X0FFF,測取STM32的參考電壓為Uref轉(zhuǎn)換為Usample,利用公式計(jì)算出所對(duì)應(yīng)的采樣電壓Usample[6]為

        Usample=Uref×Uvalue/(0X0FFF+1).

        為了保證采樣速度,采樣的最小時(shí)間選擇為1 μs,A/D獨(dú)立模式,單通道、單次、右對(duì)齊,按照規(guī)則通道轉(zhuǎn)換完成.圖6為A/D轉(zhuǎn)換的程序設(shè)計(jì)流程.

        圖6 A/D轉(zhuǎn)換的程序設(shè)計(jì)流程

        3.2 CAN總線程序設(shè)計(jì)

        (1)初始化RCC寄存器組,配置PLL輸出時(shí)鐘,分別打開CAN、GPIOA、USART1的設(shè)備時(shí)鐘.

        (2)設(shè)置CAN的Tx引腳為復(fù)用推挽模式,并設(shè)置Rx引腳為上拉輸入模式.

        (3)初始化控制器寄存器組,其中CAN工作模式為環(huán)回模式.

        (4)初始化USART、使用拓展數(shù)據(jù)幀格式發(fā)送,ID為0XAA,數(shù)據(jù)長度為8.

        計(jì)算波特率是使用任何總線的重要內(nèi)容之一,CAN波特率計(jì)算公式為

        波特率=1/正常的位時(shí)間[7].

        其中:正常的位時(shí)間=1×tq+tbs1+tbs2,tq=CAN的分頻數(shù)×tpclk,ttpclk為APB1總線的時(shí)鐘周期;tbs1和tbs2稱為時(shí)間段1、時(shí)間段2,這兩個(gè)階段的時(shí)間長度都是以tq的時(shí)間單元為單位,tbs1的時(shí)間長度設(shè)置為8tq,tbs2的時(shí)間長度設(shè)置為7tq.

        CAN通信實(shí)驗(yàn)流程如圖7所示.

        圖7 CAN通信實(shí)驗(yàn)流程

        采集卡主程序設(shè)計(jì)的部分代碼如下:

        main主函數(shù)

        #include “stm32f10x.h”

        #include “iwdg.h”

        #include “adc.h”

        #include “can.h”

        #include “l(fā)ed.h”

        extern vu16 AD_Value[50][3];//用來存放ADC轉(zhuǎn)換結(jié)果,也是DMA的轉(zhuǎn)換地址

        extern vu16 After_filter[3];//用來存放平均值之后的結(jié)果

        u16 GetVolt(u16 advalue0);//獲取電壓值

        u16 GetCurrent(u16 advalue1);//獲取電流值

        u16 GetTemp(u16 advalue2);//獲取溫度

        int main(void)

        {

        u8 TransmitMailbox = 0;//定義消息發(fā)送狀態(tài)變量

        CanTxMsg TxMessage;//定義消息發(fā)送結(jié)構(gòu)體

        IWDG_Configuration();//設(shè)置獨(dú)立看門狗

        CAN_Configuration();//配置CAN控制器

        ADC_Configuration();//配置ADC

        DMA_Configuration();//配置DAM

        LED_On();//LED指示燈點(diǎn)亮

        while(1)

        {

        filter();//求平均值函數(shù)

        TxMessage.StdId = 0x317;//標(biāo)準(zhǔn)ID:0x317

        TxMessage.RTR = CAN_RTR_DATA;//類型為數(shù)據(jù)幀

        TxMessage.IDE = CAN_ID_STD;//使用標(biāo)準(zhǔn)標(biāo)識(shí)符

        TxMessage.DLC = 8;//數(shù)據(jù)長度為8字節(jié)

        TxMessage.Data[0]= 0x00;

        TxMessage.Data[1]= 0x00;

        TxMessage.Data[2]=(unsigned char)(GetTemp(After_filter[0])>>8);//溫度傳輸

        TxMessage.Data[3]=(unsigned char)(GetTemp(After_filter[0]));

        TxMessage.Data[4]=(unsigned char)(GetVolt(After_filter[1])>>8);//電壓傳輸

        TxMessage.Data[5]=(unsigned char)(GetVolt(After_filter[1]));

        TxMessage.Data[6]=(unsigned char)(GetCurrent(After_filter[2])>>8);//電流傳輸

        TxMessage.Data[7]=(unsigned char)(GetCurrent(After_filter[2]));

        TransmitMailbox = CAN_Transmit(CAN1,&TxMessage);//數(shù)據(jù)發(fā)送

        while((CAN_TransmitStatus(CAN1,TransmitMailbox)!= CANTXOK));//等待發(fā)送完成

        IWDG_ReloadCounter();//看門狗喂狗

        }

        }

        4 結(jié) 論

        通過硬件電路板的焊制以及調(diào)試和上位機(jī)的演示接收發(fā)送可以很完整地采集到數(shù)據(jù),形成一個(gè)簡潔完善的系統(tǒng).采用STM32芯片內(nèi)置A/D轉(zhuǎn)換功能、CAN總線傳輸?shù)葍?nèi)部功能,成本低廉,設(shè)計(jì)簡單,易于使用.系統(tǒng)不足之處在于只能實(shí)現(xiàn)較小量的數(shù)據(jù)采集,有待繼續(xù)開發(fā),現(xiàn)階段可實(shí)現(xiàn)小規(guī)模產(chǎn)品的運(yùn)營,可以適用于儀器儀表,計(jì)算機(jī)等領(lǐng)域.

        猜你喜歡
        采集卡電路設(shè)計(jì)電平
        高精度AD采集卡性能測試及評(píng)價(jià)方法研究
        中國測試(2022年2期)2022-03-19 09:57:30
        Altium Designer在電路設(shè)計(jì)中的應(yīng)用
        電子制作(2019年16期)2019-09-27 09:34:58
        負(fù)反饋放大電路設(shè)計(jì)
        電子制作(2019年23期)2019-02-23 13:21:36
        面向數(shù)控機(jī)床的多通道傳感數(shù)據(jù)采集卡設(shè)計(jì)
        并行高速采樣在地震物理模擬采集中的應(yīng)用
        NPC五電平Z源逆變器的設(shè)計(jì)研究
        基于UC3843的60W升壓電路設(shè)計(jì)
        PCI-e高速數(shù)據(jù)采集卡的驅(qū)動(dòng)與上位機(jī)軟件設(shè)計(jì)
        電子器件(2015年5期)2015-12-29 08:43:12
        基于三電平光伏并網(wǎng)逆變器控制系統(tǒng)的研究與實(shí)踐
        基于NPC三電平變換器的STATCOM研究
        電測與儀表(2015年2期)2015-04-09 11:28:58
        91在线区啪国自产网页| 亚洲av无码专区亚洲av伊甸园| 国产亚洲av无码专区a∨麻豆| 亚洲国产夜色在线观看| 国产精品不卡在线视频| 亚洲国产av一区二区三区精品| 内射合集对白在线| 欧美性猛交xxxx乱大交蜜桃| 国产精品亚洲专区无码不卡| 中文字幕有码在线人妻| 在线播放真实国产乱子伦| 人妻丰满熟妇av无码处处不卡| 韩国主播av福利一区二区| 自拍偷拍韩国三级视频| 精品国产乱码久久久久久婷婷| 国产乱妇乱子视频在播放| 538亚洲欧美国产日韩在线精品| 一区二区三区日韩蜜桃| 2019最新中文字幕在线观看| 区二区欧美性插b在线视频网站| 精品人妻一区二区三区蜜桃| 手机在线观看av资源| 欧美人做人爱a全程免费| 在线亚洲综合| 日本人妻系列一区二区| www国产亚洲精品| 色老头在线一区二区三区| 欧美中出在线| 成人性生交大全免费看| 无码丰满熟妇一区二区| 无码日韩AⅤ一区二区三区| 日韩精品成人一区二区三区| 性高朝久久久久久久3小时| 亚洲人成无码www久久久| 欧美—iGAO视频网| 91久久国产香蕉视频| 中文www新版资源在线| 91华人在线| 亚洲精品一区二区成人精品网站| 人妻中文字幕无码系列| 97视频在线播放|