王宇
摘 要:本文以K型熱電偶作為溫度傳感器,配合MAX6675模塊通過SPI協(xié)議將12位的溫度數(shù)據(jù)傳輸?shù)紽PGA上,并在1602字符液晶屏上顯示溫度。利用Quartus II進(jìn)行硬件語言的編寫,并在ModelSim仿真軟件中進(jìn)行時(shí)序仿真,仿真波形驗(yàn)證了設(shè)計(jì)的正確性。
關(guān)鍵詞:K型熱電偶;MAX6675;SPI協(xié)議;FPGA
DOI:10.16640/j.cnki.37-1222/t.2019.12.136
0 引言
在工業(yè)生產(chǎn)中常用的溫度傳感器有數(shù)字式溫度傳感器和模擬式溫度傳感器,模擬式溫度傳感器由于其測(cè)量溫度寬泛、測(cè)量精度高,在諸多領(lǐng)域里的使用越來越廣泛[1]。本文設(shè)計(jì)了一款基于FPGA的K型熱電偶溫度顯示儀,在此首先介紹了K型熱電偶和MAX6675的電路結(jié)構(gòu)和工作原理,并給出了基于FPGA的Verilog硬件描述語言的程序編寫。最后通過ModelSim軟件進(jìn)行時(shí)序仿真,并將控制程序下載到DE2-115開發(fā)板上,試驗(yàn)結(jié)果驗(yàn)證了基于FPGA的K型熱電偶溫度顯示儀設(shè)計(jì)的正確性與實(shí)用性。
1 K型熱電偶和MAX6675的工作原理
K型熱電偶在工作時(shí),由于熱端和冷端之間會(huì)存在溫度差,從而導(dǎo)致冷熱兩段之間產(chǎn)生了電壓差,這種電壓差的存在會(huì)在感溫線上形成一個(gè)大小相應(yīng)的電流,這種現(xiàn)象稱為熱電效應(yīng)(或熱電現(xiàn)象)。熱電偶就是利用這一原理將溫度量值轉(zhuǎn)換成電壓差量值的傳感器。如果K型熱電偶的冷端溫度保持恒定(比如為0℃),則輸出的電壓差值和熱端溫度值成一一對(duì)應(yīng)的關(guān)系。
當(dāng)MAX6675 的CS引腳從高電平變?yōu)榈碗娖綍r(shí),MAX6675 將停止任何信號(hào)的轉(zhuǎn)換并在時(shí)鐘SCK的作用下向外輸出已轉(zhuǎn)化的數(shù)據(jù)。相反,當(dāng)CS從低電平變回高電平時(shí),MAX6675將進(jìn)行新的轉(zhuǎn)換。在CS引腳從高電平變?yōu)榈碗娖綍r(shí),第一個(gè)字節(jié)D15將出現(xiàn)在引腳SO。一個(gè)完整的數(shù)據(jù)讀過程需要16個(gè)時(shí)鐘周期,數(shù)據(jù)的讀取通常在SCK的下降沿進(jìn)行。
2 系統(tǒng)硬件語言的設(shè)計(jì)
溫度顯示儀系統(tǒng)包括MAX6675控制模塊、串并轉(zhuǎn)換模塊和LCD顯示模塊,系統(tǒng)的RTL視圖如圖1所示:
2.1 MAX6675控制模塊
溫度轉(zhuǎn)換芯片MAX6675的輸入時(shí)鐘由外部提供,本文將輸入FPGA的50MHz時(shí)鐘二分頻給sclk,其中CS為片選信號(hào),拉低時(shí),MAX6675停止轉(zhuǎn)換,并將當(dāng)前轉(zhuǎn)換結(jié)果經(jīng)由SO串行輸出[2]。
2.2 串并轉(zhuǎn)換模塊
溫度轉(zhuǎn)換芯片MAX6675輸出的是串行16位數(shù)據(jù)[3],其中D14-D3為12位溫度數(shù)據(jù)。為了使LCD能實(shí)時(shí)顯示溫度信息,需要設(shè)計(jì)一個(gè)串并轉(zhuǎn)換的模塊,并將轉(zhuǎn)換后的表示整數(shù)的10位二進(jìn)制碼轉(zhuǎn)化為16位的BCD碼,16位BCD碼每4位就能表示0-9的數(shù)[4]。
2.3 LCD顯示模塊
本設(shè)計(jì)顯示模塊采用的是16x2 LCD 模組,LCD的模塊的讀與寫、顯示屏、地址配置、光標(biāo)的操作都是通過指令編碼來實(shí)現(xiàn)的,該模塊采用狀態(tài)機(jī)來實(shí)現(xiàn)設(shè)計(jì)。為了方便控制和便于理解,該模塊采用狀態(tài)機(jī)來實(shí)現(xiàn)設(shè)計(jì)。在模塊設(shè)計(jì)中設(shè)置了8個(gè)狀態(tài),分別是起始狀態(tài)clear、設(shè)置CGRAM狀態(tài)setCGRAM、工作參數(shù)設(shè)置狀態(tài)setfunction、顯示參數(shù)設(shè)置狀態(tài)setswitchmode、輸入?yún)?shù)設(shè)置狀態(tài)setmode、光標(biāo)歸位設(shè)置狀態(tài)returncursor、字符移位設(shè)置狀態(tài)shift、寫RAM設(shè)置狀態(tài)writeRAM,狀態(tài)編碼采用獨(dú)熱碼方式[5]。
3 試驗(yàn)結(jié)果
本文的設(shè)計(jì)以DE2-115開發(fā)板為實(shí)驗(yàn)平臺(tái),該開發(fā)板選用Altera Cyclone IV 4CE115 FPGA芯片。設(shè)計(jì)經(jīng)過ModelSim仿真無誤后,下載到DE2-115開發(fā)板上,實(shí)驗(yàn)結(jié)果如圖2所示,LCD能實(shí)時(shí)顯示當(dāng)前測(cè)量溫度,滿足設(shè)計(jì)指標(biāo)要求。
4 結(jié)論
本文設(shè)計(jì)的溫度顯示儀能準(zhǔn)確溫度,實(shí)時(shí)顯示。整體系統(tǒng)性能穩(wěn)定、精度較高,達(dá)到了預(yù)期設(shè)計(jì)目標(biāo)。試驗(yàn)結(jié)果表明,這是一種實(shí)用的測(cè)溫儀設(shè)計(jì)方案,對(duì)一些需要以FPGA作為主控單元的溫度采集系統(tǒng)有一定的參考意義。
參考文獻(xiàn):
[1]郭銳,徐玉斌.K型熱電偶冷端補(bǔ)償方案[J].儀器儀表學(xué)報(bào),2006
,27(z1):331-333.
[2]樊恩東,陳湘萍.基于PID算法的溫度實(shí)時(shí)控制[J].電子世界,2016(19):113-114.
[3]丁利輝.硅碳棒式加熱爐的爐溫控制系統(tǒng)設(shè)計(jì)[J].有色金屬加工,2007,36(06):54-56.
[4]韓彬.FPGA設(shè)計(jì)技巧與案例開發(fā)詳解[M].第2版.電子工業(yè)出版社,2016.
[5]數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL[M].第6版.電子工業(yè)出版社,2016.