譚竹慧,李華旺,常亮,周華
(1.中國科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所 上?!?00050;2.上海微小衛(wèi)星工程中心 上?!?00120)
基于可編程SOC的多節(jié)點(diǎn)星上溫度采集系統(tǒng)設(shè)計(jì)
譚竹慧1,李華旺2,常亮2,周華2
(1.中國科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所 上海200050;2.上海微小衛(wèi)星工程中心 上海200120)
文中介紹了利用高集成度片上系統(tǒng)SOC型FPGA芯片SmartFusion2和高精度溫度傳感芯片DS18B20設(shè)計(jì)的星上溫度采集系統(tǒng)。本方案中FPGA僅需一個(gè)I/O接口,采用一根數(shù)據(jù)線與多個(gè)DS18B20芯片連接,極大程度降低了FPGA接口資源使用率。同時(shí),采用FPGA芯片進(jìn)行設(shè)計(jì)能減少星務(wù)軟件工作量,提升整體CPU處理性能,在實(shí)時(shí)約束方面,采用FPGA還能提高整體實(shí)時(shí)性,降低CPU處理的嚴(yán)格約束。
FPGA;DS18B20;一線網(wǎng);SmartFusion2
熱控分系統(tǒng)是衛(wèi)星的各個(gè)分系統(tǒng)的重要組成部分,它使星內(nèi)溫度保持在一定范圍內(nèi),為衛(wèi)星提供穩(wěn)定的溫度環(huán)境。星載計(jì)算機(jī)通過分析各個(gè)分系統(tǒng)傳回的實(shí)時(shí)溫度數(shù)據(jù),計(jì)算各元件功耗和散熱,檢測各系統(tǒng)運(yùn)行狀態(tài)。根據(jù)衛(wèi)星在陰影區(qū)和光照區(qū)的光照強(qiáng)度以及飛行任務(wù)規(guī)定的衛(wèi)星姿態(tài)要求,合理分配能源,控制熱管工作,調(diào)節(jié)星內(nèi)熱量分配,保證恒定的星內(nèi)溫度范圍[1-2]。
一般來說,地面設(shè)備配備的溫度采集系統(tǒng)多采用熱電阻、熱電偶等傳感器元件,但衛(wèi)星所處的空間環(huán)境惡劣,器件易受到宇宙射線的影響[3]。文中的設(shè)計(jì)基于某微納衛(wèi)星項(xiàng)目,微納衛(wèi)星體積小,集成度高,資源有限,應(yīng)選擇更為可靠和簡單方便的溫度感應(yīng)器件。DS18B20是美國DALLAS公司推出的一款單總線溫度傳感器,它特有的一線網(wǎng)串行通信總線能極大地減少接口使用,提升資源利用率,降低成本,同時(shí)DS18B20采用工業(yè)級芯片,價(jià)格低廉,采購渠道廣,功耗低。該芯片已經(jīng)在一些科學(xué)探測衛(wèi)星有效載荷中使用,可靠性也大大優(yōu)于傳統(tǒng)傳感器元件[4-5]。因此可用DS18B20溫度傳感器完成星內(nèi)的溫度量采集。FPGA作為一種高密度可編程邏輯器件,既有PLD可編程的靈活性,又有GA(掩膜門陣列)的高集成度和通用性。本文采用FPGA作為DS18B20溫度采集系統(tǒng)的控制器,相比與傳統(tǒng)的單片機(jī)控制器,在整體性和實(shí)時(shí)性上有大幅度提高。
自上個(gè)世紀(jì)90年代以來,SOC技術(shù)在電子系統(tǒng)領(lǐng)域快速發(fā)展,它具有功耗低,體積小,集成度高,速度快,系統(tǒng)功能豐富等優(yōu)點(diǎn)。文中采用Microsemi公司生產(chǎn)的SmartFusion2系列SOC型FPGA芯片作為星載計(jì)算機(jī)平臺,該芯片以高性能大容量FLASH架構(gòu)的FPGA為核心,利用內(nèi)嵌的Arm Cortex-M3硬核處理器及完善的SOPC設(shè)計(jì)技術(shù),將模擬信號轉(zhuǎn)換、數(shù)字信號處理以及靈活的接口設(shè)置集成到單一芯片中,能滿足星載計(jì)算機(jī)的功能需求。使用FPGA來實(shí)現(xiàn)DS18B20控制器不僅可以減少接口的使用,還能分擔(dān)主處理器的工作,節(jié)約CPU資源,減少星務(wù)軟件的工作量[6-7]。同時(shí),工業(yè)級SmartFusion2在價(jià)格和性能上對比與于傳統(tǒng)的星上處理器都有絕對優(yōu)勢,且具備高可靠性和單事件翻轉(zhuǎn)免疫能力,可廣泛用于國防和航空領(lǐng)域。SmartFusion2的性能符合未來衛(wèi)星領(lǐng)域的發(fā)展趨勢。
該星載計(jì)算機(jī)采用SmartFusion2完成遙控遙測,AD采樣,模擬量輸入輸出,實(shí)時(shí)時(shí)鐘,串口通信等多種功能,利用剩余的資源完成 DS18B20星上系統(tǒng)的溫度采集功能。DS18B20的供電范圍是3~5.5 V,SmartFusion2的輸出電壓是3.3 V,能夠支持18B20正常工作,因此可以使用SmartFusion2的管腳直接驅(qū)動DS18B20。
多節(jié)點(diǎn)SmartFusion2與DS18B20一線網(wǎng)總線的硬件連接圖如圖1。DS18B20芯片只有3個(gè)引腳,VDD引腳可直接接3.3 V穩(wěn)壓電源,中間為數(shù)據(jù)引腳,負(fù)責(zé)DS18B20的數(shù)據(jù)傳輸,GND管腳接地。多個(gè)DS18B20可通過數(shù)據(jù)引腳連接在一起,再與SmartFusion2相連。為使總線被釋放時(shí)為高電平,總線需接6.8 kΩ的上拉電阻。
圖1 硬件連接圖
2.1DS18B20的內(nèi)部寄存器
DS18B20自帶9字節(jié)的暫存器,分別為:用于存放轉(zhuǎn)換后的溫度值的溫度暫存器,2字節(jié);溫度報(bào)警觸發(fā)器TH和TL,2字節(jié);用于調(diào)整測量精度的配置寄存器,1字節(jié);后3個(gè)字節(jié)為保留字節(jié),最后一個(gè)字節(jié)為CRC校驗(yàn)。其中TH、TL和配置寄存器為非易失的EEPROM。
2.2DS18B20的操作流程
DS18B20的操作流程分為3部分,即:初始化,ROM命令,功能命令。對DS18B20的操作必須嚴(yán)格按照以上時(shí)序進(jìn)行,如果某一步丟失DS18B20將不再應(yīng)答,完成功能命令后若需進(jìn)行下一步操作需要返回初始化階段,重新開始一輪流程。
本文的目的是監(jiān)測星上多個(gè)節(jié)點(diǎn)的溫度數(shù)據(jù),需要每隔一段時(shí)間進(jìn)行一次溫度轉(zhuǎn)換并依次讀出各個(gè)18B20的數(shù)據(jù)。因此需要用到的ROM命令有:READ ROM、MATCH ROM、SKIP ROM,需要用到的功能命令有:CONVERTTEMPERATURE、READSCRATCHPAD。
2.3DS18B20的讀寫邏輯
DS18B20的讀寫邏輯也遵循特定時(shí)序規(guī)則。
主機(jī)每向18B20寫1 bit數(shù)據(jù)即為一個(gè)write slot,當(dāng)一個(gè)write slot開始后,主機(jī)先將總線拉低至少1 μs,然后在15 μs內(nèi)釋放總線。若主機(jī)需要寫'1',則在釋放總線后輸出高電平;若寫'0',則保持輸出低電平。18B20將在一個(gè)write slot產(chǎn)生后的15至60 μs采樣,若采樣信號為高電平,則認(rèn)為寫入的是'1',反之則為'0'。每一個(gè)write slot至少持續(xù)60 μs的時(shí)間,相鄰的write slot間需要至少1 μs的恢復(fù)時(shí)間。
主機(jī)從18B20讀1 bit數(shù)據(jù)即為一個(gè)read slot,當(dāng)一個(gè)write slot開始后,主機(jī)先將總線拉低至少1 μs然后釋放。當(dāng)主機(jī)初始化一個(gè)read slot后,18B20將向總線上傳輸數(shù)據(jù)供主機(jī)讀取,主機(jī)需要在15 μs內(nèi)對總線采樣完成讀數(shù)。每一個(gè)read slot至少持續(xù)60 μs的時(shí)間,相鄰的read slot間需要至少1 μs的恢復(fù)時(shí)間。
圖2 溫度采集流程圖
3.1DS18B20溫度采集流程
采用DS18B20完成的星上溫度采集系統(tǒng)流程圖如圖2所示。當(dāng)狀態(tài)機(jī)接收到觸發(fā)指令時(shí),程序啟動,首先通過一線網(wǎng)總線發(fā)布一個(gè)初始化命令初始化所有DS18B20,然后執(zhí)行convert命令,啟動溫度轉(zhuǎn)換。由于12位溫度轉(zhuǎn)換所需時(shí)間至多為750 ms,因此等待750 ms后溫度轉(zhuǎn)換一定已經(jīng)完成。最后依次match每一個(gè)DS18B20的romid,讀出此前存于暫存器中的溫度數(shù)據(jù),循環(huán)此操作直至完成線上每一個(gè)DS18B20溫度數(shù)據(jù)的讀取。星載計(jì)算機(jī)可以1 s完成一次對星上所有DS18B20溫度的采集,而每隔1 s的觸發(fā)信號可由定時(shí)器產(chǎn)生。
3.2DS18B20溫度采集的FPGA程序設(shè)計(jì)
文中采用VHDL語言編寫程序。采用三段式狀態(tài)機(jī),將組合邏輯和時(shí)序邏輯分開,利于綜合器分析優(yōu)化和程序維護(hù),且更符合設(shè)計(jì)的習(xí)慣思維。其中PROCESS A采用同步時(shí)序描述狀態(tài)轉(zhuǎn)移,PROCESS B采用組合邏輯判斷狀態(tài)轉(zhuǎn)移條件,PROCESS C使用同步時(shí)序電路描述每個(gè)狀態(tài)的輸出。
程序分為兩層狀態(tài)機(jī),上層狀態(tài)機(jī)負(fù)責(zé)功能之間的跳轉(zhuǎn),底層狀態(tài)機(jī)定義基本操作的流程,如寫1bit數(shù)和讀1bit數(shù),兩層狀態(tài)機(jī)間通過壓棧出棧的原理互通。上層狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖如圖3(a)。
Idle狀態(tài)的跳轉(zhuǎn)信號由定時(shí)器觸發(fā)產(chǎn)生,當(dāng)收到觸發(fā)信號后狀態(tài)機(jī)跳至Reset_begin狀態(tài),依次向下執(zhí)行,當(dāng)讀取完所有總線上的DS18B20,狀態(tài)機(jī)回到Idle狀態(tài),等到下一次觸發(fā)信號。
圖3 DS18B20控制器狀態(tài)機(jī)狀態(tài)圖
每向DS18B20發(fā)送一條指令,狀態(tài)機(jī)先進(jìn)入begin狀態(tài),在begin狀態(tài)里,將tx_push置1,tx_push是底層狀態(tài)機(jī)的啟動信號,當(dāng)push為1時(shí),底層狀態(tài)機(jī)啟動,執(zhí)行tx_type對應(yīng)的指令,底層狀態(tài)機(jī)啟動后將tx_pop信號置1,而當(dāng)?shù)讓訝顟B(tài)機(jī)執(zhí)行完當(dāng)前命令的操作,進(jìn)入end狀態(tài)時(shí),tx_pop信號置0,返回給上層狀態(tài)機(jī)告訴其操作已經(jīng)完成,上層狀態(tài)機(jī)可以根據(jù)指令跳轉(zhuǎn)到下一個(gè)狀態(tài),底層狀態(tài)機(jī)狀態(tài)圖如圖3(b)。因?yàn)镈S18B20需要嚴(yán)格按照一線網(wǎng)的時(shí)序進(jìn)行操作,讀寫過程中存在相當(dāng)多的計(jì)數(shù)與延時(shí),因本文涉及到步驟偏多,若僅采用一層流水線狀態(tài)機(jī)將使得設(shè)計(jì)復(fù)雜化。采用兩層狀態(tài)機(jī),將讀寫、復(fù)位等最常用邏輯的時(shí)序置于底層狀態(tài)機(jī)中有利于簡化設(shè)計(jì),使得代碼可重用性提升,同時(shí)也有利于代碼的修改維護(hù)和管理。
3.3DS18B20溫度采集結(jié)果分析
文中采用基于SmartFusion2的SoC設(shè)計(jì)平臺,在APB總線下掛載VHDL語言設(shè)計(jì)的DS18B20控制器,如圖4。
選用MicroSemi公司的SmartFusion2 SoC FPGA開發(fā)板Starter kit進(jìn)行調(diào)試,外部采用3.3V電源給DS18B20供電,調(diào)試結(jié)果圖5所示。
圖4 DS18B20控制器配置圖
圖5 示波器波形圖
圖5(a)給出了一次流程中初始化及溫度轉(zhuǎn)換的波形圖,其中給出Push信號的波形圖,T給出DS18B20數(shù)據(jù)端波形圖。圖5(b)給出了溫度轉(zhuǎn)換完成后Match并讀取某一個(gè)DS18B20的波形圖,文中實(shí)際電路中連接了4路DS18B20,由于篇幅限制,僅給出其中某一路信號,其余類似,實(shí)際應(yīng)用到星上時(shí),會有更多路DS18B20分散在衛(wèi)星的各個(gè)位置,且每一路的ROMID事先已通過單片機(jī)程序讀出。
文中創(chuàng)新點(diǎn)在于給出了FPGA設(shè)計(jì)的多路DS18B20控制器方案。利用FPGA設(shè)計(jì)有很多優(yōu)勢,最重要的有兩點(diǎn)。其一是外部電路僅使用一根數(shù)據(jù)線,極大減少FPGA接口資源的使用。其二是利用FPGA設(shè)計(jì)溫度采集控制系統(tǒng)可以分擔(dān)星載計(jì)算機(jī)上星務(wù)軟件的工作量,節(jié)約CPU資源,同時(shí)還能提高整體實(shí)時(shí)性,降低CPU處理的嚴(yán)格實(shí)時(shí)約束,從而降低CPU軟件處理的難度。
DS18B20還有一些其他的功能,如溫度報(bào)警功能,基于星上測溫的需求,本文設(shè)計(jì)中暫未用到,但思路相同,有需要的讀者可以自行設(shè)計(jì)。
[1]姚敏,趙敏.基于數(shù)據(jù)融合的小衛(wèi)星溫度測量冗余設(shè)計(jì)方法[J].儀器儀表學(xué)報(bào),2006(10):1266-1269.
[2]Zhou Runjing,JiaLanping,Liang Zhian.Design of Measure and Control of Heating Field in the Radio-frequency Heattherapy System[C].ICEMI'2005第七屆國際電子測量與儀器學(xué)術(shù)會議論文集,2005.
[3]張錦鵬,程明,王俊山.基于FPGA的18b20的CRC校驗(yàn)碼的并行算法及實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2011(4):44-46.
[4]ShangliXiao,Weisheng Xu,Youling Yu.A Simulative Building Fire Spread Tracking System Based on FPGA and 1-Wire Bus Sensor Network[C].Proceedings of Asia Simulation conference 2008/the 7th International Conference on System Simulation and Scientific Computing(ICSC'2008),2008.
[5]周岳斌.基于FPGA和單總線技術(shù)的多點(diǎn)測溫系統(tǒng)設(shè)計(jì)[J].科技咨詢導(dǎo)報(bào),2007(5):6-7.
[6]李農(nóng).FPGA與DS18B20型溫度傳感器通信的實(shí)現(xiàn)[J].國外電子元器件(現(xiàn)電子設(shè)計(jì)工程),2006(2):48-51.
[7]王春玲,王美紅,寧崇森,等.基于DS18B20的小環(huán)境測溫控制的FPGA實(shí)現(xiàn)[J].泰山學(xué)院學(xué)報(bào),2014(3):10-16.
Design of multi-nodeacquisition system for on-board computer based on programmable SOC
TAN Zhu-hui1,LI Hua-wang2,CHANG Liang2,ZHOU Hua2
(1.Shanghai Institute of Micro-system and Information Technology Chinese Academy of Science,Shanghai 200050,China;2.Shanghai Engineering Center for Micro-satellite,Shanghai 200120,China)
This paper describes the design of the satellite's temperature acquisition system based on a highly integrated system SOC FPGA chip named SmartFusion2 and high precision temperature sensor chip named DS18B20.In this program,F(xiàn)PGA only uses one I/O interface,connecting to multiple DS18B20swith a data line,it greatly reduces the FPGA interface resource usage.At the same time,the design of FPGA chip can reduce the workload of the software,enhance the overall CPU processing performance,besides,the use of FPGA can also improve the overall real-time performance,reduce CPU processing strict constraints.
FPGA;DS18B20;1-wire;SmartFusion2
TN99
A
1674-6236(2016)16-0054-04
2015-08-23稿件編號:201508124
中國科學(xué)院戰(zhàn)略性先導(dǎo)科技專項(xiàng)(XDA04040201)
譚竹慧(1991—),女,江蘇鎮(zhèn)江人,碩士研究生。研究方向:星載計(jì)算機(jī)綜合電子系統(tǒng)設(shè)計(jì)。