無錫科技職業(yè)學院 史 萍 張 瑾
為了實現(xiàn)電機測速的高性能、低成本、低功耗,本文設計了一種基于STM32F103CET6單片機控制的電機轉速測量儀,用OLED屏顯示其每分鐘轉速和電機圖片。采用霍爾傳感器接收電機旋轉信號,經(jīng)過上拉處理后送STM32單片機,單片機用中斷的方式進行處理,通過連續(xù)兩次接收到傳感器信號的時間差確定每分鐘電機的轉速。該測速儀便于功能擴展、電路結構簡潔、性能價格比高、實用性強。
隨著芯片技術及其開發(fā)軟件的不斷發(fā)展,許多控制功能可以采用嵌入式技術來完成,這樣就為電機的精準測速提供了便捷,通過測速可以反應設備運行是否正常以及確定定位精度。本測速儀把嵌入式STM32單片機技術運用到電機測速系統(tǒng)中,不但可以提高性能,而且還可以降低功耗,進而減少系統(tǒng)成本。另外,霍爾傳感器利用磁感應測速抗外界干擾能力強且靈敏度高,進一步提高了測速精度。
電機測速儀硬件設計框圖如圖1所示,霍爾傳感器模塊將感應到的電機信號經(jīng)過處理成為脈沖信號,該脈沖信號作為中斷信號送STM32F103CET6單片機,單片機進行信息處理,最后送ALIENTEK OLED顯示模塊,該模塊采用8080并行模式,OLED屏顯示中英文漢字、電機轉速和電機圖片。

圖1 電機測速儀硬件設計框圖
霍爾傳感器模塊組成如圖2所示,圖中霍爾傳感器型號為3144,1腳接電源(電源范圍為4.5V至24V,本設計選擇5V供電),2腳接地,3腳接10K的上拉電阻連3.3V電源,然后接STM32單片機的PE2腳。
霍爾傳感器模塊中的霍爾傳感器預先安裝固定,在電機的旋轉部位安裝導磁性能優(yōu)良的磁鋼,當電機旋轉時將帶動磁鋼接近霍爾傳感器,此時霍爾傳感器3腳將輸出信號送給單片機,電機不轉時霍爾傳感器輸出高電平,當電機旋轉時霍爾傳感器接近磁鋼將輸出低電平。

圖2 霍爾傳感器模塊組成
STM32F103ZET6單片機為中低端的32位增強型微處理器,由意法半導體公司制造,其內核基于Cortex-M3即采用哈佛結構,運用三級流水線處理機制并增加了分支預測功能,完全基于硬件進行中斷處理,中斷處理速度快;最高工作頻率達72MHz,片內Flash為512K,指令運行周期短;3.3V供電,為低功耗芯片;該芯片集成了Timer、ADC、SPI,I2C及UART等多種外設功能,易于功能擴展。其端口PA~PG可根據(jù)需要定義成輸入或輸出及多種復用口,這樣PCB板的設計人員不必把某些信號在板上繞一大圈完成聯(lián)接,既便于PCB的設計又減少了信號的交叉干擾。

圖3 單片機和OLED模塊插座連接圖
單片機和OLED模塊插座連接如圖3所示,圖中U3為STM32F103ZET6單片機,J1為OLED模塊連接插座,OLED的片選信號OLED_CS和單片機的PD6相連,OLED的寫數(shù)據(jù)信號OLED_WR和單片機的PG14相連,OLED的讀數(shù)據(jù)信號OLED_RD和單片機的PG13相連,OLED的硬復位信號OLED_RST和單片機的PG15相連,OLED的命令/數(shù)據(jù)標志信號OLED_RS和單片機的PD3相連,OLED的數(shù)據(jù)信號D0~D7分別和單片機的PC0~PC7相連。
圖3中U3的PE2接霍爾傳感器模塊送來的信號。U3的8腳和9腳間接外部低頻32.768KHz晶振,晶振JZ2和電容C7、C6構成晶體振蕩電路。U3的23腳和24腳間接外部高頻8MHz晶振,同樣晶振JZ1和電容C2、C3也構成晶體振蕩電路。U3的33腳接電源并對地接電容作去耦處理,起保護芯片作用,30腳接地。

圖4 OLED顯示模塊
OLED顯示模塊如圖4所示,圖中OLED1為OLED12864液晶顯示屏,可以顯示128×64個點,J2為OLED顯示模塊插頭,與圖3中的J1配對使用,OLED1的BS1和BS2分別接J3和J4的TP信號,通過跳線帽短接3.3V電源或地,接電源時信號值為‘1’,接地時信號值為‘0’,BS1、BS2為不同信號值代表不同的工作模式,如表1所示,當BS1和BS2為“00”時,OLED工作于4線SPI模式;當BS1和BS2為“10”時,OLED工作于I2C模式;當BS1和BS2為“01”時,OLED工作于8位6800模式;當BS1和BS2為“11”時,OLED工作于8位8080模式。本設計中OLED模塊采用8位8080工作模式。

表1 OLED模塊工作模式
OLED的優(yōu)點是具備自發(fā)光特性,不需背光源,高辨率為128×64;其使用了非常薄的涂層和玻璃基板,厚度可以做得較薄,可用于撓曲性面板。其缺點是尺寸難以實現(xiàn)大型化和沒有顯存,它的顯存依賴于SSD1306驅動芯片,顯存大小為128×64位,這些顯存分8頁,每頁包含了128個字節(jié)。
電機測速儀軟件流程圖如圖5所示,先進行初始化,然后調用函數(shù)顯示相關文字和電機圖片。當STM32第一次接收到傳感器信號時,定時器計數(shù)值清零;當接收不到第二次傳感器信號時,定時器TIM5溢出;當定時器溢出次數(shù)超過預設值時,表示電機電機不轉,顯示轉速值為0。當?shù)诙谓邮盏絺鞲衅餍盘枙r,單片機讀取定時器計數(shù)值TIM5_CNT,此值即為定時器計數(shù)總時長,也就是電機轉1圈所花的時間,已知通用定時器的時鐘為72MHz,則電機轉速的計算公式為(60×72×106)/定時器計數(shù)值。

圖5 電機測速儀軟件流程圖
圖5中傳感器信號作為中斷信號送STM32單片機。STM32F103的中斷很強大,每個GPIO口都可以作為中斷使用,STM32F103ZET6的16條外部中斷線最多可連接112個GPIO,PA0~PG0共用1條EXIT0外部中斷線,PA1~PG1共用另1條EXIT1外部中斷線,其他IO口共用外部中斷線,以此類推。STM32F103的中斷優(yōu)先級寄存器NVIC_IPRX用于配置外部中斷的優(yōu)先級,使用IPR的高4bit配置若干種中斷優(yōu)先級,其數(shù)值越小優(yōu)先級越高,即外部中斷EXIT0優(yōu)先級最高。中斷編程分四大步驟:(1)配置相關寄存器使能中斷請求稱為外設使能,如單片機接收到傳感器送來的外部中斷信號,這個中斷由外部中斷控制寄存器的相關中斷使能位來控制;(2)通過NVIC_PriorityGroup函數(shù)配置中斷優(yōu)先級分組;(3)配置NVIC寄存器,初始化NVIC_InitTypeDef函數(shù),指定中斷源、搶占優(yōu)先級、子優(yōu)先級、內核中斷使能或失能;(4)編寫中斷服務函數(shù)。
以下代碼為主程序,執(zhí)行了延時、LED端口、TIM5、中斷分組、OLED初始化,調用若干函數(shù)顯示中英文和圖片,while循環(huán)語句實現(xiàn)LED燈翻轉指示。


圖6 OLED顯示
以下代碼為外部中斷EXIT2服務函數(shù),當?shù)诙谓邮盏絺鞲衅餍盘柡螅?jīng)計算顯示電機速度,并清除外部中斷2。

OLED顯示內容如圖6所示,顯示了中英文、轉速和圖片。OLED顯示屏能顯示128列64行點陣,圖中中文漢字采用14×16點陣,英文采用8×16點陣,圖片采用32×32點陣。
結語:本設計采用嵌入式單片機STM32F103為控制芯片,利用霍爾傳感器3144進行電機測速,OLED屏顯示轉速信息,實現(xiàn)電路結構簡捷,成本低、可靠性高、抗干擾能力強、擴展性好,實踐效果良好。