明立娟,董杰
(攀枝花學(xué)院,四川攀枝花,617000)
隨著電子信息技術(shù)的不斷發(fā)展,電子元器件種類不斷增加,在電子元器件柜中存放的電子元器件種類愈發(fā)龐雜繁多,用戶在元器件柜中查找元器件只能靠著標(biāo)簽挨個查找,查找效率十分低下。因此設(shè)計一種智能查詢電子元器件柜,用戶通過觸摸屏輸入元器件名稱系統(tǒng)便會自動搜索是否存有該元器件并提示用戶查詢結(jié)果,能夠有效解決老式元器件柜查找和管理效率低下的問題。
本設(shè)計使用STM32F103C8T6 作為主控芯片,HMI 串口屏作為人機交互界面,用戶可以通過觸摸屏選擇添加、查詢、刪除功能,以及元器件型號的輸入。系統(tǒng)使用W25Q64芯片存儲大量的元器件存放信息,同時由于元器件柜中每一個存放元器件的元器件盒都安裝有提示燈,因此需要有大量的指示燈需要控制,系統(tǒng)設(shè)計選用74HC595 位移緩沖器對單片機IO 口進行拓展,同時借助其級聯(lián)功能,在原理上能夠?qū)崿F(xiàn)對單片機IO 口的無限拓展,即系統(tǒng)理論上可以控制的指示燈數(shù)量幾乎無限制。系統(tǒng)總體設(shè)計框架如圖1 所示。
圖1 系統(tǒng)總體設(shè)計框圖
系統(tǒng)選用STM32F103C8T6 作為主控芯片其最小系統(tǒng)由單片機、電源、晶振電路、復(fù)位電路幾大部分組成其電路圖如圖2 所示。單片機主要負(fù)責(zé)所有外設(shè)功能模塊的驅(qū)動,元器件存儲數(shù)據(jù)的管理以及系統(tǒng)的整體控制邏輯。
圖2 單片機最小系統(tǒng)
在本設(shè)計中需要存儲大量的元器件數(shù)據(jù)并進行合理的數(shù)據(jù)管理,故存儲電路選用W25Q64 進行數(shù)據(jù)存儲,其電路圖如圖3 所示,該芯片為64Mbit 的SPI Flash 存儲芯片能夠滿足系統(tǒng)的數(shù)據(jù)存儲需求。同時本系統(tǒng)引入FatFS 文件系統(tǒng),用于眾多數(shù)據(jù)文件的存儲和管理。FatFS 文件系統(tǒng)為一種專門針對單片機的文件系統(tǒng),支持SPI Flash 等多種存儲媒介;有獨立的緩沖區(qū),可以對多個文件進行讀/寫。
圖3 W25Q64 電路
在FatFS 文件系統(tǒng)的機制下,本系統(tǒng)巧妙的將元器件的存儲操作轉(zhuǎn)換為了文件系統(tǒng)中文件的創(chuàng)建操作,在系統(tǒng)存入元器件時,單片機程序通過觸摸屏獲取到存入元器件的名稱以及存放的柜號后,系統(tǒng)程序則通過文件系統(tǒng)創(chuàng)建一個文件并將其命名為存入的元器件名稱,并在該文件中寫入該元器件所存放的元器件盒編號。經(jīng)過以上操作,用戶在向元器件柜中儲存元器件的同時也在單片機程序運行的文件系統(tǒng)中創(chuàng)建了一個與該元器件存放信息相對應(yīng)的文件,由此則將元器件的存儲操作映射為了FatFS 文件系統(tǒng)中的文件創(chuàng)建于寫入操作。元器件的查詢則是被轉(zhuǎn)換為了文件系統(tǒng)中的查找文件的操作和讀取文件操作,在進行查找元器件時,當(dāng)系統(tǒng)從觸摸屏中獲取到需要查詢的元器件名稱后程序便會循環(huán)讀取文件系統(tǒng)中的所有文件名并將其與用戶輸入的元器件名稱進行對比匹配,若有文件名匹配成功,系統(tǒng)則讀取該文件中存儲的其對應(yīng)的元器件的存放位置編號并將其通過觸摸屏顯示出來,同時控制指示燈電路,點亮該元器件存放位置的指示燈,以達到提示用戶的目的。若文件系統(tǒng)中沒有與用戶輸入的元器件名稱相同的文件則表示元器件柜中沒有存放該類元器件,則通過觸摸屏輸出錯誤信息。元器件的移除則是被轉(zhuǎn)換為了文件系統(tǒng)中對文件的刪除操作,在執(zhí)行刪除元器件操作時,系統(tǒng)會根據(jù)用戶輸入搜索文件系統(tǒng)中與之對應(yīng)的文件并將該文件刪除。
由此現(xiàn)實中的元器件的存儲,查詢,刪除操作被映射為了單片機中文件系統(tǒng)中的對文件的創(chuàng)建、讀寫、搜索、刪除操作,極大的簡化了元器件存放數(shù)據(jù)的管理。
在本系統(tǒng)中LED 指示燈的數(shù)量可以針對元器件盒的數(shù)量不同自行進行增加或減少,因此該部分采用模塊化設(shè)計。使用74HC595 8 位串行輸入、并行輸出位移緩沖器實現(xiàn)該功能,單片機通過SPI 串行協(xié)議控制74HC595 的輸出控制LED 指示燈,同時借助其級聯(lián)功能將上一個74HC595 的Q7(級聯(lián)輸出引腳)接到下一個74HC595 的DS(串行數(shù)據(jù)輸入引腳)實現(xiàn)LED 指示燈的級聯(lián)拓展,并且該種級聯(lián)方式在硬件上幾乎沒有任何限制,單片機只需要占用三個引腳就可以實現(xiàn)近乎無線多的LED 指示燈的控制。單個LED指示燈的控制電路如圖4 所示。
圖4 LED 指示燈電路
本系統(tǒng)使用陶晶池公司的USART HMI 屏幕作為人機交互界面,該屏幕支持用戶通過專用的上位機進行二次開發(fā),在程序設(shè)計時可以將人機交互UI設(shè)計與系統(tǒng)控制程序分離,在屏幕開發(fā)的上位機中設(shè)計好顯示界面以及與單片機的交互指令后單片機便可以通過串口發(fā)送控制指令控制屏幕顯示,也可以通過串口獲取屏幕的觸摸信息,結(jié)合系統(tǒng)的整體控制邏輯便可實現(xiàn)觸摸屏的輸入輸出功能。
為了使單片機能夠方便的控制觸摸屏的供斷電,以及控制有源蜂鳴器工作,設(shè)計使用NPN 三級管通過集電極驅(qū)動的方式驅(qū)動蜂鳴器以及控制觸摸屏電源的通斷,電路原理圖如圖5 所示。
圖5 觸摸屏驅(qū)動電路(供電)以及蜂鳴器驅(qū)動電路
為確保單片機系統(tǒng)中電路穩(wěn)定可靠工作,復(fù)位電路是必不可少的一部分,復(fù)位電路的第一功能是上電復(fù)位。平常我們常用的復(fù)位方式有兩種,一種是NRST 引腳的低電平復(fù)位,
通過按鍵復(fù)位電路給這個引腳一個低電平,讓系統(tǒng)完成復(fù)位,另一種就是上電復(fù)位。本系統(tǒng)采用的復(fù)位方式為NRST引腳的低電平復(fù)位,電路圖如圖6 復(fù)位電路所示。
圖6 復(fù)位電路
STM32 擁有一個內(nèi)部時鐘,是用芯片內(nèi)部振蕩電路,但是精度不高,溫漂也較大。外部時鐘,分RC 振蕩和石英晶振,RC 精度不高,成本低,石英晶振,精度高,穩(wěn)定性好,根據(jù)使用場合選擇,適合的時鐘方式。在本系統(tǒng)中我們選擇外部石英晶振為單片機提供穩(wěn)定的時鐘源。本系統(tǒng)使用復(fù)位電路如圖7 所示。
圖7 時鐘電路
系統(tǒng)設(shè)計的標(biāo)準(zhǔn)輸入電壓為5V 但是電路上有既有需要5V 供電的外設(shè)又有需要3.3V 供電的外設(shè),因此需要設(shè)計一個DC-DC 降壓電路將5V 輸入電壓降壓為3.3V 為部分外設(shè)供電。考慮到3.3V 部分外設(shè)消耗功率不高,因此選取LDO(低壓差線性穩(wěn)壓器)進行降壓,綜合成本與性能本系統(tǒng)選擇XC6204 作為穩(wěn)壓芯片。查閱數(shù)據(jù)手冊可知XC2602 為LDO 器件(低壓差線性穩(wěn)壓器)輸出功率較小但是效率高,硬件電路簡單。非常適合于本項目的應(yīng)用場景,其具體電路如圖8 所示。
圖8 降壓電路
本設(shè)計的控制器為STM32F103C8T6,使用SPI FLASH存儲大量用戶數(shù)據(jù),使用HMI 串口屏作為人機交互界面,其主要任務(wù)是實現(xiàn)觸摸屏的人機交互邏輯,并根據(jù)用戶通過觸摸屏的輸入控制文件系統(tǒng)中進行文件的創(chuàng)建、讀寫或刪除等操作,同時控制74HC595 點亮或熄滅指示燈,而大量指示燈的控制通過74HC595 拓展單片機的IO 口來實現(xiàn),同時借助74HC595 的級聯(lián)功能完全可以實現(xiàn)指示燈數(shù)量的隨意拓展,以達到本系統(tǒng)設(shè)計的功能。
本系統(tǒng)采用STM32CubeMX 進行外設(shè)配置并自動生成工程文件,基于Keil-MDK 進行程序開發(fā),同時移植FATFS文件系統(tǒng)進行復(fù)雜繁瑣的文件存儲管理,借助虛擬串口輸出打印調(diào)試信息查看程序?qū)崟r運行情況,借助HMI 串口屏實現(xiàn)復(fù)雜觸控UI 界面的設(shè)計,最終完成了本系統(tǒng)的程序設(shè)計,實現(xiàn)了設(shè)計之初擬定的基本功能,使得大量的元器件存儲信息得以被合理的使用的存儲和使用。
圖9 C 語言程序設(shè)計流程圖
同時在程序軟件設(shè)計中要盡可能做到方便調(diào)試和方便維護、修改,在軟件設(shè)計上采用了模塊化設(shè)計。使各個功能模塊單獨封裝為獨立的函數(shù)并且能夠獨立運行,極大的方便了程序的修改和迭代升級,提高了程序開發(fā)和維護效率。同時在程序編寫過程中按照編程規(guī)范進行注釋,方便閱讀以及后期維護。在本設(shè)計的程序中使用了較多新知識,因此在功能實現(xiàn)的過程中也遇到了許多問題,經(jīng)過和老師同學(xué)的探討,以及查閱各種資料,最終成功的解決了所有問題,并完成了項目最初的擬定功能。
本項目是基于STM32 單片機的一種智能查詢電子元器件柜設(shè)計。整體方案使用W25Q64 存儲芯片引入FatFS 文件系統(tǒng)對元器件存儲數(shù)據(jù)進行存儲和管理,使用HMI 串口屏方案設(shè)計用戶交互界面,通過74HC595 進行IO 口的拓展以控制LED 指示燈并借助其級聯(lián)功能實現(xiàn)LED 指示燈的任意增加或減少。本設(shè)計在軟硬件設(shè)計上都基本上滿足了設(shè)計之初的功能設(shè)定。實現(xiàn)了電子元器件的便捷式管理與查詢。