一種計(jì)算機(jī)通用usb電路控制器及其實(shí)現(xiàn)方法
【專(zhuān)利摘要】一種計(jì)算機(jī)通用USB電路控制器,包括MCU內(nèi)核設(shè)備和AD電路轉(zhuǎn)換設(shè)備,MCU內(nèi)核設(shè)備和AD電路轉(zhuǎn)換設(shè)備連接;MCU內(nèi)核設(shè)備為STM32設(shè)備;所述AD電路轉(zhuǎn)換設(shè)備為C8051F350單片機(jī)設(shè)備;STM32設(shè)備的USART2與C8051F350單片機(jī)設(shè)備的UART串口進(jìn)行連接;MCU內(nèi)核設(shè)備上燒寫(xiě)電路控制協(xié)議;步驟101,上位機(jī)通過(guò)電路控制協(xié)議將電路控制指令發(fā)送到MCU內(nèi)核設(shè)備;步驟102,根據(jù)電路控制指令,MCU內(nèi)核設(shè)備直接對(duì)電路進(jìn)行控制或通過(guò)AD電路轉(zhuǎn)換設(shè)備對(duì)所述電路進(jìn)行控制。通過(guò)本發(fā)明,只需要針對(duì)他的電路,制作相應(yīng)的應(yīng)用程序即可;通過(guò)本發(fā)明降低了研發(fā)前期的投入,開(kāi)發(fā)門(mén)檻的成本。
【專(zhuān)利說(shuō)明】一種計(jì)算機(jī)通用USB電路控制器及其實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)外部設(shè)備的工業(yè)控制【技術(shù)領(lǐng)域】,尤其是涉及一種計(jì)算機(jī)通用USB電路控制器及其實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]由于電子產(chǎn)品已經(jīng)趨于智能化,無(wú)論是家電,還是工業(yè)控制設(shè)備,控制核心都是智能設(shè)備。當(dāng)前的智能控制設(shè)備的核心一般是微控制器(Micro Controller Unit,簡(jiǎn)稱(chēng)MCU);微控制器功耗小、成本低,在很多小型電器中都有它。MCU設(shè)計(jì)是為了控制電路,具有直接控制電路的輸入/輸出口,并且在MCU內(nèi)部,集成了控制電路的各種單元,如數(shù)字10、模擬量輸A (Analog-Digital)、輸出(Digital-Analog)、脈寬調(diào)制(Pulse Width Modulat1n)、集成輸入輸出接口(串口等)。但是MCU存在如下缺陷:①嵌入式系統(tǒng)CPU指令系統(tǒng)五花八門(mén),外設(shè)控制方式更是各有各的特色,導(dǎo)致嵌入式軟件的移植非常困難;②嵌入式系統(tǒng)指令存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器等資源小,而且速度也很低(數(shù)字信號(hào)處理器DSP除外),在數(shù)據(jù)處理上,非常困難;③基于第一和第二點(diǎn)缺陷的原因,在嵌入式控制器上移植諸如文件系統(tǒng)、以太網(wǎng)模塊等成熟技術(shù)也顯得非常困難;④在設(shè)計(jì)方案的過(guò)程中,一般都需要為嵌入式微控制器搭建最小系統(tǒng)電路,在研發(fā)過(guò)程中,在研發(fā)過(guò)程中,最小系統(tǒng)板的制作是不小的成本;嵌入式開(kāi)發(fā)的環(huán)境需要編輯器、交叉編譯器、燒寫(xiě)/調(diào)試器(IEC/JTAG/……),還需要目標(biāo)機(jī)的最小系統(tǒng),故此研究與學(xué)習(xí)嵌入式開(kāi)發(fā)的門(mén)檻、成本相對(duì)較高。
[0003]由于嵌入式開(kāi)發(fā)的門(mén)檻、成本都非常高,功能單一,但是在電路控制領(lǐng)域,微控制器與電路的無(wú)縫連接的優(yōu)勢(shì)體現(xiàn)出來(lái),必須用微控制器處理電信號(hào);通用微型計(jì)算機(jī)的開(kāi)發(fā)門(mén)檻非常低,速度快,儲(chǔ)量大,而且內(nèi)部操作系統(tǒng)集成網(wǎng)絡(luò)、WEB、文件系統(tǒng)等通用功能,但是通用計(jì)算機(jī)的外設(shè)接口相對(duì)很少,除了專(zhuān)用的VGA/DVI/HDM1、PS/2等,就是通用的USB、232 串口。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于設(shè)計(jì)一種計(jì)算機(jī)通用USB電路控制器及其實(shí)現(xiàn)方法,通過(guò)與計(jì)算機(jī)USB連接,前端擴(kuò)展出數(shù)字輸入輸出、模擬輸入輸出、脈寬調(diào)制輸入輸出、控制系統(tǒng)中常用的USART (TTL/232/485)、IIC、SPI等的設(shè)備,降低做智能控制系統(tǒng)的門(mén)檻,把最核心的程序-電氣之間的接口標(biāo)準(zhǔn)化,最終系統(tǒng)實(shí)現(xiàn)者只需要去寫(xiě)任何一種高級(jí)語(yǔ)言的應(yīng)用程序即可實(shí)現(xiàn)與電氣電路的搭建,解決上述問(wèn)題。
[0005]為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
[0006]一種計(jì)算機(jī)通用USB電路控制器的通訊方法,計(jì)算機(jī)通用USB電路控制器包括MCU內(nèi)核設(shè)備和AD電路轉(zhuǎn)換設(shè)備;所述MCU內(nèi)核設(shè)備上燒寫(xiě)電路控制協(xié)議;
[0007]步驟101,上位機(jī)通過(guò)所述電路控制協(xié)議將電路控制指令發(fā)送到所述MCU內(nèi)核設(shè)備;
[0008]步驟102,根據(jù)所述電路控制指令,所述MCU內(nèi)核設(shè)備直接對(duì)所述電路進(jìn)行控制或通過(guò)AD電路轉(zhuǎn)換設(shè)備對(duì)所述電路進(jìn)行控制。
[0009]優(yōu)選的,步驟101中,所述電路控制協(xié)議位于所述MCU內(nèi)核設(shè)備的程序中,所述電路控制協(xié)議具體包括MCU內(nèi)核設(shè)備驅(qū)動(dòng)、USB轉(zhuǎn)串口模塊、檢測(cè)模塊、所述設(shè)備串口編號(hào)模塊、1控制模塊、PWM控制模塊和模擬控制模塊;通過(guò)所述電路控制協(xié)議將電路控制指令發(fā)送到所述MCU內(nèi)核設(shè)備的具體方法為:
[0010]步驟201,所述MCU內(nèi)核設(shè)備驅(qū)動(dòng)對(duì)所述MCU內(nèi)核設(shè)備進(jìn)行驅(qū)動(dòng)識(shí)別;若識(shí)別正確則進(jìn)入步驟202 ;若識(shí)別錯(cuò)誤則繼續(xù)識(shí)別,直到識(shí)別正確為止;
[0011]步驟202,通過(guò)所述USB轉(zhuǎn)串口模塊在所述MCU內(nèi)核設(shè)備驅(qū)動(dòng)上映射兩個(gè)串口,分別為EPO和EP2 ;所述EPO用于所述MCU內(nèi)核設(shè)備與所述上位機(jī)進(jìn)行通訊;所述EP2用于所述MCU內(nèi)核設(shè)備與所述電路進(jìn)行通訊;
[0012]步驟203,通過(guò)所述檢測(cè)模塊對(duì)所述上位機(jī)通訊的電路控制指令進(jìn)行判斷,形成判斷結(jié)果;
[0013]步驟204,所述設(shè)備串口編號(hào)模塊、所述1控制模塊、所述PWM控制模塊和所述模擬控制模塊根據(jù)所述判斷結(jié)果對(duì)電路進(jìn)行控制。
[0014]優(yōu)選的,步驟203中,對(duì)所述上位機(jī)通訊的電路控制指令進(jìn)行判斷的具體方法為:
[0015]步驟301,對(duì)所述電路控制指令進(jìn)行掃描檢查,形成檢查結(jié)果;
[0016]步驟302,根據(jù)所述檢查結(jié)果,對(duì)所述電路控制指令的串口緩存長(zhǎng)度進(jìn)行判斷;
[0017]若所述串口緩存長(zhǎng)度小于等于7個(gè)字符,則返回步驟301 ;
[0018]若所述串口緩存長(zhǎng)度大于7個(gè)字符,則進(jìn)入步驟303 ;
[0019]步驟303,對(duì)所述電路控制指令中的出棧組織指令進(jìn)行異或校驗(yàn);
[0020]步驟303.a若校驗(yàn)失敗,則輸出錯(cuò)誤信息,并返回步驟301 ;
[0021 ] 步驟303.b,若校驗(yàn)成功,則對(duì)所述電路控制指令進(jìn)行指令識(shí)別;
[0022]若所述電路控制指令識(shí)別失敗,則輸出錯(cuò)誤信息,并返回步驟301 ;
[0023]若所述電路控制指令識(shí)別成功,則形成判斷結(jié)果。
[0024]優(yōu)選的,步驟204中,所述設(shè)備串口編號(hào)模塊根據(jù)所述判斷結(jié)果對(duì)電路進(jìn)行控制的具體方法為:
[0025]當(dāng)所述判斷結(jié)果中包括上位機(jī)發(fā)送8個(gè)O時(shí),所述設(shè)備串口編號(hào)模塊則返回兩幀參數(shù)作為所述MCU內(nèi)核設(shè)備的ID ;所述兩巾貞參數(shù)中的每巾貞參數(shù)包括6個(gè)字節(jié)。
[0026]優(yōu)選的,步驟204中,所述1控制模塊根據(jù)所述判斷結(jié)果對(duì)電路進(jìn)行控制的具體方法為:
[0027]當(dāng)所述判斷結(jié)果包括0x01指令時(shí),則所述1控制模塊對(duì)電路進(jìn)行方向控制;
[0028]當(dāng)所述判斷結(jié)果包括0x03指令時(shí),則所述1控制模塊對(duì)電路進(jìn)行1輸出控制;
[0029]當(dāng)所述判斷結(jié)果包括0x02指令時(shí),則所述1控制模塊對(duì)電路進(jìn)行1輸入設(shè)置。
[0030]優(yōu)選的,步驟204中,所述PWM控制模塊根據(jù)所述判斷結(jié)果對(duì)電路進(jìn)行控制的具體方法為:
[0031]當(dāng)所述判斷結(jié)果包括0x04、0x05或0x06指令中的一種或多種時(shí),PWM模塊將8路PWM分為兩組,所述PWM控制模塊對(duì)電路進(jìn)行PWM輸出控制;當(dāng)所述判斷結(jié)果包括所述0x04指令時(shí),所述PWM控制模塊對(duì)電路進(jìn)PWM分頻系數(shù)與周期節(jié)能型控制;當(dāng)所述判斷結(jié)果包括所述0x05指令時(shí),所述PWM控制模塊選取PWM組別并進(jìn)行周期控制;當(dāng)所述判斷結(jié)果包括所述0x06指令時(shí),所述PWM控制模塊對(duì)PWM進(jìn)行高電平控制;
[0032]當(dāng)所述判斷結(jié)果包括0x07或0x08指令中的一種或多種時(shí),則所述PWM控制模塊對(duì)電路進(jìn)行PWM輸入控制;
[0033]當(dāng)所述判斷結(jié)果包括0x07指令時(shí),所述PWM控制模塊對(duì)電路進(jìn)行分頻系數(shù)控制;
[0034]當(dāng)所述判斷結(jié)果包括0x08指令時(shí),所述PWM控制模塊對(duì)電路進(jìn)行周期及高電平時(shí)間進(jìn)行控制。
[0035]優(yōu)選的,步驟204中,所述模擬控制模塊根據(jù)所述判斷結(jié)果對(duì)電路進(jìn)行控制的具體方法為:
[0036]當(dāng)所述判斷結(jié)果包括0x09指令時(shí),則所述模擬控制模塊對(duì)電路進(jìn)行模擬輸出控制;
[0037]當(dāng)所述判斷結(jié)果包括OxOA指令時(shí),則所述模擬控制模塊對(duì)電路進(jìn)行模擬輸入控制;
[0038]當(dāng)所述判斷結(jié)果包括Oxff指令時(shí),所述模擬控制模塊對(duì)電路進(jìn)行防盜信息輸入控制。
[0039]一種計(jì)算機(jī)通用USB電路控制器,包括MCU內(nèi)核設(shè)備和AD電路轉(zhuǎn)換設(shè)備,所述MCU內(nèi)核設(shè)備和所述AD電路轉(zhuǎn)換設(shè)備連接。
[0040]優(yōu)選的,所述MCU內(nèi)核設(shè)備為STM32設(shè)備。
[0041]優(yōu)選的,所述AD電路轉(zhuǎn)換設(shè)備為C8051F350單片機(jī)設(shè)備;所述STM32設(shè)備的USART2與所述C8051F350單片機(jī)設(shè)備的UART串口進(jìn)行連接。
[0042]名詞解釋:
[0043]STM32 型號(hào):基本型:STM32F101R6STM32F101C8STM32F101R8STM32F101V8STM32F1OlRB STM32F101VB ;增強(qiáng)型:STM32F103C8STM32F103R8STM32F103V8STM32F103RBSTM32F103VB STM32F103VE STM32F103ZE。
[0044]AD是英文“Analog-Digital”的縮寫(xiě),是電路里面的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)的電路簡(jiǎn)稱(chēng)。
[0045]DA是英文“Digital-Analog”的縮寫(xiě),是電路里面的數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào)的電路簡(jiǎn)稱(chēng)。
[0046]PWM是英文“Pulse Width Modulat1n”的縮寫(xiě),簡(jiǎn)稱(chēng)脈寬調(diào)制,是利用微處理器的數(shù)字輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測(cè)量、通信到功率控制與變換的許多領(lǐng)域中。
[0047]本發(fā)明的有益效果可以總結(jié)如下:
[0048]1、通過(guò)本發(fā)明將控制系統(tǒng)中最有技術(shù)難度、風(fēng)險(xiǎn)的嵌入式控制平臺(tái)統(tǒng)一化,使用方只需要針對(duì)他的電路,制作相應(yīng)的應(yīng)用程序即可;
[0049]2、通過(guò)本發(fā)明降低了研發(fā)前期的投入,開(kāi)發(fā)門(mén)檻的成本;
[0050]3、通過(guò)本發(fā)明提供了高級(jí)語(yǔ)言開(kāi)發(fā)程序的執(zhí)行效率,改善了 USB電路的管理、開(kāi)發(fā)的周期與維護(hù);
[0051]4、通過(guò)本發(fā)明將充分了利用了計(jì)算機(jī)速度快、存儲(chǔ)量大、集成各種通用資源(RTC/文件系統(tǒng)/網(wǎng)絡(luò))的優(yōu)勢(shì),降低了開(kāi)發(fā)門(mén)檻低,直接發(fā)揮了微控制器具有直接操作電路接口的優(yōu)勢(shì),方便控制的研發(fā)。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0052]圖1為本發(fā)明中計(jì)算機(jī)通用USB電路控制器的通訊方法的流程示意圖。
[0053]圖2為本發(fā)明通過(guò)所述電路控制協(xié)議將電路控制指令發(fā)送到所述MCU內(nèi)核設(shè)備的流程示意圖。
[0054]圖3為本發(fā)明對(duì)上位機(jī)通訊的電路控制指令進(jìn)行判斷的流程示意圖。
[0055]圖4為本發(fā)明中計(jì)算機(jī)通用USB電路控制器的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0056]為了使本發(fā)明所解決的技術(shù)問(wèn)題、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0057]如圖1所示的一種計(jì)算機(jī)通用USB電路控制器的通訊方法,包括計(jì)算機(jī)通用USB電路控制器包括MCU內(nèi)核設(shè)備和AD電路轉(zhuǎn)換設(shè)備;MCU內(nèi)核設(shè)備上燒寫(xiě)電路控制協(xié)議;
[0058]步驟101,上位機(jī)通過(guò)電路控制協(xié)議將電路控制指令發(fā)送到MCU內(nèi)核設(shè)備;
[0059]步驟102,根據(jù)電路控制指令,MCU內(nèi)核設(shè)備直接對(duì)電路進(jìn)行控制或通過(guò)AD電路轉(zhuǎn)換設(shè)備對(duì)電路進(jìn)行控制。
[0060]如圖2所示,電路控制協(xié)議位于MCU內(nèi)核設(shè)備的程序中,電路控制協(xié)議具體包括MCU內(nèi)核設(shè)備驅(qū)動(dòng)、USB轉(zhuǎn)串口模塊、檢測(cè)模塊、設(shè)備串口編號(hào)模塊、1控制模塊、PWM控制模塊和模擬控制模塊;通過(guò)電路控制協(xié)議將電路控制指令發(fā)送到MCU內(nèi)核設(shè)備的具體方法為:
[0061]步驟201,MCU內(nèi)核設(shè)備驅(qū)動(dòng)對(duì)MCU內(nèi)核設(shè)備進(jìn)行驅(qū)動(dòng)識(shí)別;若識(shí)別正確則進(jìn)入步驟202 ;若識(shí)別錯(cuò)誤則繼續(xù)識(shí)別,直到識(shí)別正確為止;
[0062]步驟202,通過(guò)USB轉(zhuǎn)串口模塊在MCU內(nèi)核設(shè)備驅(qū)動(dòng)上映射兩個(gè)串口,分別為EPO和EP2 ;ΕΡ0用于MCU內(nèi)核設(shè)備與上位機(jī)進(jìn)行通訊;EP2用于MCU內(nèi)核設(shè)備與電路進(jìn)行通訊;
[0063]步驟203,通過(guò)檢測(cè)模塊對(duì)上位機(jī)通訊的電路控制指令進(jìn)行判斷,形成判斷結(jié)果;
[0064]步驟204,設(shè)備串口編號(hào)模塊、1控制模塊、PWM控制模塊和模擬控制模塊根據(jù)判斷結(jié)果對(duì)電路進(jìn)行控制;
[0065]設(shè)備串口編號(hào)模塊根據(jù)判斷結(jié)果對(duì)電路進(jìn)行控制的具體方法為:當(dāng)判斷結(jié)果中包括上位機(jī)發(fā)送8個(gè)O時(shí),設(shè)備串口編號(hào)模塊則返回兩幀參數(shù)作為MCU內(nèi)核設(shè)備的ID ;兩幀參數(shù)中的每巾貞參數(shù)包括6個(gè)字節(jié);
[0066]1控制模塊根據(jù)判斷結(jié)果對(duì)電路進(jìn)行控制的具體方法為:當(dāng)判斷結(jié)果包括0x01指令時(shí),則1控制模塊對(duì)電路進(jìn)行方向控制;當(dāng)判斷結(jié)果包括0x03指令時(shí),則1控制模塊對(duì)電路進(jìn)行1輸出控制;當(dāng)判斷結(jié)果包括0x02指令時(shí),則1控制模塊對(duì)電路進(jìn)行1輸入設(shè)置;
[0067]PWM控制模塊根據(jù)判斷結(jié)果對(duì)電路進(jìn)行控制的具體方法為:當(dāng)判斷結(jié)果包括0x04,0x05或0x06指令中的一種或多種時(shí),PWM模塊將8路PWM分為兩組,PWM控制模塊對(duì)電路進(jìn)行PWM輸出控制;當(dāng)判斷結(jié)果包括0x04指令時(shí),PWM控制模塊對(duì)電路進(jìn)PWM分頻系數(shù)與周期節(jié)能型控制;當(dāng)判斷結(jié)果包括0x05指令時(shí),PWM控制模塊選取PWM組別并進(jìn)行周期控制;當(dāng)判斷結(jié)果包括0x06指令時(shí),PWM控制模塊對(duì)PWM進(jìn)行高電平控制;當(dāng)判斷結(jié)果包括0x07或0x08指令中的一種或多種時(shí),則PWM控制模塊對(duì)電路進(jìn)行PWM輸入控制;當(dāng)判斷結(jié)果包括0x07指令時(shí),PWM控制模塊對(duì)電路進(jìn)行分頻系數(shù)控制;當(dāng)判斷結(jié)果包括0x08指令時(shí),PWM控制模塊對(duì)電路進(jìn)行周期及高電平時(shí)間進(jìn)行控制;
[0068]模擬控制模塊根據(jù)判斷結(jié)果對(duì)電路進(jìn)行控制的具體方法為:當(dāng)判斷結(jié)果包括0x09指令時(shí),則模擬控制模塊對(duì)電路進(jìn)行模擬輸出控制;當(dāng)判斷結(jié)果包括OxOA指令時(shí),則模擬控制模塊對(duì)電路進(jìn)行模擬輸入控制;當(dāng)判斷結(jié)果包括Oxff指令時(shí),模擬控制模塊對(duì)電路進(jìn)行防盜信息輸入控制。
[0069]如圖3所示,對(duì)上位機(jī)通訊的電路控制指令進(jìn)行判斷的具體方法為:
[0070]步驟301,對(duì)電路控制指令進(jìn)行掃描檢查,形成檢查結(jié)果;
[0071]步驟302,根據(jù)檢查結(jié)果,對(duì)電路控制指令的串口緩存長(zhǎng)度進(jìn)行判斷;
[0072]若串口緩存長(zhǎng)度小于等于7個(gè)字符,則返回步驟301 ;
[0073]若串口緩存長(zhǎng)度大于7個(gè)字符,則進(jìn)入步驟303 ;
[0074]步驟303,對(duì)電路控制指令中的出棧組織指令進(jìn)行異或校驗(yàn);
[0075]步驟303.a若校驗(yàn)失敗,則輸出錯(cuò)誤信息,并返回步驟301 ;
[0076]步驟303.b,若校驗(yàn)成功,則對(duì)電路控制指令進(jìn)行指令識(shí)別;
[0077]若電路控制指令識(shí)別失敗,則輸出錯(cuò)誤信息,并返回步驟301 ;
[0078]若電路控制指令識(shí)別成功,則形成判斷結(jié)果。
[0079]如圖4所示的一種計(jì)算機(jī)通用USB電路控制器,包括MCU內(nèi)核設(shè)備和AD電路轉(zhuǎn)換設(shè)備,MCU內(nèi)核設(shè)備和AD電路轉(zhuǎn)換設(shè)備連接;MCU內(nèi)核設(shè)備為STM32設(shè)備;AD電路轉(zhuǎn)換設(shè)備為C8051F350單片機(jī)設(shè)備;STM32設(shè)備的USART2與C8051F350單片機(jī)設(shè)備的UART串口進(jìn)行連接。本設(shè)備采用STM32設(shè)備和C8051F350單片機(jī)設(shè)備。邏輯連接上,STM32設(shè)備與上位機(jī)使用USB2.0接口通訊,STM32設(shè)備與C8051F350單片機(jī)設(shè)備之間用一個(gè)通用異步串口(UART)通訊,STM32設(shè)備的USART2接C8051F350的UART接口上。STM32設(shè)備內(nèi)部?jī)?nèi)建USB轉(zhuǎn)串口協(xié)議,轉(zhuǎn)換出兩個(gè)串口,其中一個(gè)串口,被映射到STM32的串口 I做通用串口,另一個(gè)串口接收的數(shù)據(jù)直接被STM32設(shè)備內(nèi)部的串口解析為操作電氣端口的指令。使用USB轉(zhuǎn)串口的原因是:上位機(jī)操作系統(tǒng)如WinXP/Win7/Linux/Mac0s等、開(kāi)發(fā)環(huán)境如Vs.Net/VS/GCC/JAVA等都對(duì)串口的操作,上位機(jī)兼容性、可移植性、易上手度非常好。串口協(xié)議采用了固定長(zhǎng)度,為8個(gè)字節(jié)一幀,其中第一個(gè)字節(jié)是命令字,后面六個(gè)字節(jié)是參數(shù),最后一個(gè)字節(jié)為校驗(yàn)字。設(shè)備擴(kuò)展出一路CMOS-3.3V電平的串口,并在板上具有232、485轉(zhuǎn)換電路;擴(kuò)展出一路SPI口,一路IIC 口。這三個(gè)接口供現(xiàn)場(chǎng)其他工業(yè)控制板與設(shè)備的連接。擴(kuò)展出48路數(shù)字10,電平為CMOS-3.3V。每路1都可以單獨(dú)操作,1的工作模式有:浮空輸入、上拉輸入、下拉輸入、開(kāi)漏輸出、推挽輸出。1的響應(yīng)速度是50MHz。擴(kuò)展出8路PWM(脈寬調(diào)制)輸出,I路PWM輸入,電平為CMOS-3.3V。PWM的計(jì)時(shí)單位從1/72000000秒到65536/72000000秒可調(diào);周期從I到65536個(gè)計(jì)時(shí)單位可調(diào);占空比在0-1區(qū)間內(nèi),精度為計(jì)時(shí)單位。例如:輸出周期為50ms,高電平時(shí)間為20ms,可以將計(jì)時(shí)單位設(shè)置成0.5ms (lms> (65536/72000000) s),周期設(shè)置為100單位,高電平時(shí)間設(shè)置為40單位。8路PWM輸出分為兩組,每組4路,每組的計(jì)時(shí)單位、周期相同,同組內(nèi)的4路可有不同的高電平時(shí)間/占空比。擴(kuò)展出2路12位模擬量輸出(Digital-Analog),滿(mǎn)刻度為2.048V,精度為12位。換言之,DA將2.048V分成了 212等份,可以輸出精度為0.5mV的電壓信號(hào)。STM32設(shè)備與一個(gè)C8051F350通訊,C8051F350單片機(jī)設(shè)備內(nèi)部?jī)?nèi)建8路24位模擬量輸入(Analog-Digital),滿(mǎn)刻度為2.048V,精度為24位,具有0.122uV的精度。
[0080]電源方面,使用USB供電,能供給5V500mA的負(fù)載,內(nèi)部使用LDO(MIC5209-3.3BS)降到3.3V供兩個(gè)單片機(jī)使用;另外使用電壓參考(LM4040AME-2.048)產(chǎn)生2.048V的參考電壓,供模數(shù)轉(zhuǎn)換與數(shù)模轉(zhuǎn)換時(shí)使用。
[0081]C8051F350單片機(jī)設(shè)備只起模數(shù)轉(zhuǎn)換(AD)的作用,它片內(nèi)含有24位AD轉(zhuǎn)換器,可以做到精密測(cè)量。將其AIN0-AIN7用2.54_單排針的方式引出,可以進(jìn)行模擬測(cè)量。主要設(shè)備中并沒(méi)有做任何措施,直接把芯片的引腳連接到單排針,可以用RC濾波。C8051F350單片機(jī)設(shè)備的工作流程為:接收到STM32設(shè)備發(fā)送來(lái)的AD轉(zhuǎn)換命令(一個(gè)字節(jié),為轉(zhuǎn)換的通道號(hào)),開(kāi)啟AD轉(zhuǎn)換過(guò)程,AD轉(zhuǎn)換結(jié)束后,向STM32設(shè)備發(fā)送三個(gè)字節(jié),由高到低,AD轉(zhuǎn)換結(jié)果。任何一個(gè)24位AD都可以起到C8051F350單片機(jī)設(shè)備的作用,當(dāng)然每個(gè)芯片有每個(gè)芯片的接口方式,如果用其它24位AD,則相應(yīng)與STM32設(shè)備的通訊接口也需要有變化。
[0082]STM32 設(shè)備的 PC0-PC15,PD0-PD15,PE0-PE15 直接接出,作為通用 M 口(Digital0-Digital47),有浮空輸入、上拉輸入、下拉輸入、推挽輸出、開(kāi)漏輸出五種工作方式。
[0083]STM32設(shè)備中--Μ3、TIM4兩個(gè)定時(shí)器的8個(gè)通道作為PWM輸出功能,PWM的分辨率t (1/72000000秒的整數(shù)倍,取值范圍是1-65536)、周期(單位為分辨率t,取值范圍是1-65535)每個(gè)定時(shí)器的4路輸出通道可以一并設(shè)置,占空比高電平時(shí)間(單位為分辨率t,取值范圍是O-周期)每路可單獨(dú)設(shè)定。STM32設(shè)備中--Μ2的通道I作為PWM輸入,分辨率t可設(shè)置,設(shè)置后,可讀取周期、占空比(單位為t)。STM32設(shè)備數(shù)模轉(zhuǎn)換引腳(DAC1、DAC2)接到放大器LM324上,經(jīng)過(guò)運(yùn)放搭建的電壓跟隨器輸出到引線上。DAC的分辨率為12bit。STM32設(shè)備串口 I直接、通過(guò)232電平轉(zhuǎn)換器、485電平轉(zhuǎn)換器接到輸出口上,在使用過(guò)程中,串口 I就相當(dāng)于CP2102、PL2303 —樣可以使用。STM32設(shè)備串口 2連接到C8051F350單片機(jī)設(shè)備上,與C8051F350單片機(jī)設(shè)備通訊。STM32設(shè)備通過(guò)USB連接到上位機(jī)上。STM32設(shè)備驅(qū)動(dòng)程序上,10、PWM輸出/輸入(定時(shí)器)、DAC、串口等都為意法半導(dǎo)體提供的開(kāi)源驅(qū)動(dòng)。USB接口轉(zhuǎn)換出兩個(gè)串口,其中一個(gè)串口(內(nèi)部ID為O)映射到串口 I上,可以直接像CP2102、PL2303 —樣可以使用,另一個(gè)串口(內(nèi)部ID為2)不在STM32設(shè)備引腳上體現(xiàn)。而是將USB收發(fā)的數(shù)據(jù)在STM32設(shè)備應(yīng)用層處理。串口 2的波特率可忽略。在STM32設(shè)備應(yīng)用層上,主要為串口 2的協(xié)議解析,有1輸出、1輸入、模擬量輸出12bit、模擬量輸入24bit (通過(guò)C8051F)、PWM輸出、PWM輸入功能,這些量均為電路控制的基本點(diǎn)血量。這樣,系統(tǒng)呈現(xiàn)為USB串口發(fā)送指令,單片機(jī)端口實(shí)現(xiàn)相應(yīng)的動(dòng)作,以達(dá)到電路控制與電學(xué)量采集的功能。只要在上位機(jī)上簡(jiǎn)單的實(shí)現(xiàn)一下串口數(shù)據(jù)組織,就可以編寫(xiě)任何軟件,直接控制電路。本系統(tǒng)在WINDOWS、LINUX下均可正常運(yùn)行。從實(shí)現(xiàn)功能上,任何一個(gè)帶有USB接口的MCU均可代替STM32設(shè)備,當(dāng)然是重新寫(xiě)在此MCU上運(yùn)行的固件。然而采用本固件可以用在STM32設(shè)備F103VxT6上,其中x可以是6/8/B/C/D/E/F/G,使用C及其以下的MCUjf不具備DA輸出功能。
[0084]以上通過(guò)具體的和優(yōu)選的實(shí)施例詳細(xì)的描述了本發(fā)明,但本領(lǐng)域技術(shù)人員應(yīng)該明白,本發(fā)明并不局限于以上所述實(shí)施例,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種計(jì)算機(jī)通用USB電路控制器的通訊方法,其特征在于:計(jì)算機(jī)通用USB電路控制器包括MCU內(nèi)核設(shè)備和AD電路轉(zhuǎn)換設(shè)備;所述MCU內(nèi)核設(shè)備上燒寫(xiě)電路控制協(xié)議; 步驟101,上位機(jī)通過(guò)所述電路控制協(xié)議將電路控制指令發(fā)送到所述MCU內(nèi)核設(shè)備;步驟102,根據(jù)所述電路控制指令,所述MCU內(nèi)核設(shè)備直接對(duì)所述電路進(jìn)行控制或通過(guò)AD電路轉(zhuǎn)換設(shè)備對(duì)所述電路進(jìn)行控制。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)通用USB電路控制器的通訊方法,其特征在于,步驟101中,所述電路控制協(xié)議位于所述MCU內(nèi)核設(shè)備的程序中,所述電路控制協(xié)議具體包括MCU內(nèi)核設(shè)備驅(qū)動(dòng)、USB轉(zhuǎn)串口模塊、檢測(cè)模塊、所述設(shè)備串口編號(hào)模塊、1控制模塊、PWM控制模塊和模擬控制模塊;通過(guò)所述電路控制協(xié)議將電路控制指令發(fā)送到所述MCU內(nèi)核設(shè)備的具體方法為: 步驟201,所述MCU內(nèi)核設(shè)備驅(qū)動(dòng)對(duì)所述MCU內(nèi)核設(shè)備進(jìn)行驅(qū)動(dòng)識(shí)別;若識(shí)別正確則進(jìn)入步驟202 ;若識(shí)別錯(cuò)誤則繼續(xù)識(shí)別,直到識(shí)別正確為止; 步驟202,通過(guò)所述USB轉(zhuǎn)串口模塊在所述MCU內(nèi)核設(shè)備驅(qū)動(dòng)上映射兩個(gè)串口,分別為EPO和EP2 ;所述EPO用于所述MCU內(nèi)核設(shè)備與所述上位機(jī)進(jìn)行通訊;所述EP2用于所述MCU內(nèi)核設(shè)備與所述電路進(jìn)行通訊; 步驟203,通過(guò)所述檢測(cè)模塊對(duì)所述上位機(jī)通訊的電路控制指令進(jìn)行判斷,形成判斷結(jié)果; 步驟204,所述設(shè)備串口編號(hào)模塊、所述1控制模塊、所述PWM控制模塊和所述模擬控制模塊根據(jù)所述判斷結(jié)果對(duì)電路進(jìn)行控制。
3.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)通用USB電路控制器的通訊方法,其特征在于,步驟203中,對(duì)所述上位機(jī)通訊的電路控制指令進(jìn)行判斷的具體方法為: 步驟301,對(duì)所述電路控制指令進(jìn)行掃描檢查,形成檢查結(jié)果; 步驟302,根據(jù)所述檢查結(jié)果,對(duì)所述電路控制指令的串口緩存長(zhǎng)度進(jìn)行判斷; 若所述串口緩存長(zhǎng)度小于等于7個(gè)字符,則返回步驟301 ; 若所述串口緩存長(zhǎng)度大于7個(gè)字符,則進(jìn)入步驟303 ; 步驟303,對(duì)所述電路控制指令中的出棧組織指令進(jìn)行異或校驗(yàn); 步驟303.a若校驗(yàn)失敗,則輸出錯(cuò)誤信息,并返回步驟301 ; 步驟303.b,若校驗(yàn)成功,則對(duì)所述電路控制指令進(jìn)行指令識(shí)別; 若所述電路控制指令識(shí)別失敗,則輸出錯(cuò)誤信息,并返回步驟301 ; 若所述電路控制指令識(shí)別成功,則形成判斷結(jié)果。
4.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)通用USB電路控制器,其特征在于:步驟204中,所述設(shè)備串口編號(hào)模塊根據(jù)所述判斷結(jié)果對(duì)電路進(jìn)行控制的具體方法為: 當(dāng)所述判斷結(jié)果中包括上位機(jī)發(fā)送8個(gè)O時(shí),所述設(shè)備串口編號(hào)模塊則返回兩幀參數(shù)作為所述MCU內(nèi)核設(shè)備的ID ;所述兩幀參數(shù)中的每幀參數(shù)包括6個(gè)字節(jié)。
5.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)通用USB電路控制器,其特征在于:步驟204中,所述1控制模塊根據(jù)所述判斷結(jié)果對(duì)電路進(jìn)行控制的具體方法為: 當(dāng)所述判斷結(jié)果包括0x01指令時(shí),則所述1控制模塊對(duì)電路進(jìn)行方向控制; 當(dāng)所述判斷結(jié)果包括0x03指令時(shí),則所述1控制模塊對(duì)電路進(jìn)行1輸出控制; 當(dāng)所述判斷結(jié)果包括0x02指令時(shí),則所述1控制模塊對(duì)電路進(jìn)行1輸入設(shè)置。
6.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)通用USB電路控制器,其特征在于:步驟204中,所述PWM控制模塊根據(jù)所述判斷結(jié)果對(duì)電路進(jìn)行控制的具體方法為: 當(dāng)所述判斷結(jié)果包括0x04、0x05或0x06指令中的一種或多種時(shí),PWM模塊將8路PWM分為兩組,所述PWM控制模塊對(duì)電路進(jìn)行PWM輸出控制;當(dāng)所述判斷結(jié)果包括所述0x04指令時(shí),所述PWM控制模塊對(duì)電路進(jìn)PWM分頻系數(shù)與周期節(jié)能型控制;當(dāng)所述判斷結(jié)果包括所述0x05指令時(shí),所述PWM控制模塊選取PWM組別并進(jìn)行周期控制;當(dāng)所述判斷結(jié)果包括所述0x06指令時(shí),所述PWM控制模塊對(duì)PWM進(jìn)行高電平控制; 當(dāng)所述判斷結(jié)果包括0x07或0x08指令中的一種或多種時(shí),則所述PWM控制模塊對(duì)電路進(jìn)行PWM輸入控制; 當(dāng)所述判斷結(jié)果包括0x07指令時(shí),所述PWM控制模塊對(duì)電路進(jìn)行分頻系數(shù)控制; 當(dāng)所述判斷結(jié)果包括0x08指令時(shí),所述PWM控制模塊對(duì)電路進(jìn)行周期及高電平時(shí)間進(jìn)行控制。
7.根據(jù)權(quán)利要求2所述的計(jì)算機(jī)通用USB電路控制器,其特征在于:步驟204中,所述模擬控制模塊根據(jù)所述判斷結(jié)果對(duì)電路進(jìn)行控制的具體方法為: 當(dāng)所述判斷結(jié)果包括0x09指令時(shí),則所述模擬控制模塊對(duì)電路進(jìn)行模擬輸出控制; 當(dāng)所述判斷結(jié)果包括OxOA指令時(shí),則所述模擬控制模塊對(duì)電路進(jìn)行模擬輸入控制; 當(dāng)所述判斷結(jié)果包括Oxff指令時(shí),所述模擬控制模塊對(duì)電路進(jìn)行防盜信息輸入控制。
8.一種計(jì)算機(jī)通用USB電路控制器,其特征在于:包括MCU內(nèi)核設(shè)備和AD電路轉(zhuǎn)換設(shè)備,所述MCU內(nèi)核設(shè)備和所述AD電路轉(zhuǎn)換設(shè)備連接。
9.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)通用USB電路控制器,其特征在于:所述MCU內(nèi)核設(shè)備為STM32設(shè)備。
10.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)通用USB電路控制器,其特征在于:所述AD電路轉(zhuǎn)換設(shè)備為C8051F350單片機(jī)設(shè)備;所述STM32設(shè)備的USART2與所述C8051F350單片機(jī)設(shè)備的UART串口進(jìn)行連接。
【文檔編號(hào)】G05B19/418GK104298185SQ201410061864
【公開(kāi)日】2015年1月21日 申請(qǐng)日期:2014年2月19日 優(yōu)先權(quán)日:2014年2月19日
【發(fā)明者】王超 申請(qǐng)人:王超