馬 強,李競航,王建民,楊少英
(1. 華北計算機系統(tǒng)工程研究所,北京 100083; 2. 六所智達(北京)科技有限公司,北京 100083)
FT1500A主板上電時序控制的設計與實現(xiàn)
馬 強1,李競航2,王建民1,楊少英1
(1. 華北計算機系統(tǒng)工程研究所,北京100083;2. 六所智達(北京)科技有限公司,北京100083)
研究了一種基于國產處理器FT1500A的主板的上電時序控制方法。硬件部分采用Altera可編程邏輯控制器EPM240作為控制單元,采用電源模塊LTM4627實現(xiàn)電源的使能控制與穩(wěn)定檢測;軟件部分在Quartus平臺上使用VHDL語言,利用統(tǒng)計可編程邏輯控制器的時鐘脈沖的方式實現(xiàn)了延時控制,利用控制器內部的邏輯單元實現(xiàn)了電源模塊的使能控制。最后利用示波器的單次觸發(fā)功能驗證了設計的正確性和可靠性。
主板上電時序;FT1500A;可編程邏輯控制器;VHDL語言
在板卡的上電過程中,當在開啟電源后,電壓的上升是一個連續(xù)的過程,所有芯片必然不能同時瞬間擁有所需的工作電壓,而芯片的工作又存在先后順序,所以必須人為地對電源信號發(fā)生的順序加以控制,使板卡上的芯片依次上電,這就是板卡的上電時序控制[1]。芯片F(xiàn)T1500A是2015年由中國電子新推出的一款高性能國產中央處理器 (Central Processing Unit, CPU),F(xiàn)T-1500A系列處理器是64位通用CPU,具有高性能、低功耗等特點,關鍵技術在國內處于領先水平。其主板研發(fā)是一個嶄新的課題,因為主板上的所有元器件均為國產,包括核心CPU,所以國際上無人涉足,在國內也無先例。FT1500A主板的時序控制方法與Intel架構的CPU主板不能同等處理。
本課題所設計的FT1500A主板采用的是新主板架構ATX(AT Extended)標準電源,其中關鍵的控制管腳PS_ON#信號為低電平有效,控制所有主電源開啟關閉,需上拉到5 V。5VSB為獨立電源,為軟電壓控制提供電源,powered-down(PS_ON#為高,主電源關斷)狀態(tài)下也有效。PWR_OK信號是+5 V和+3 V電源就緒標志,就緒時拉高,電壓不足或斷電時拉低。12 V電源插座要緊挨穩(wěn)壓器,保證電源的干凈。
FT1500A對上電時序的要求規(guī)定如圖1所示,其中PWR_BTN_EN是上電按鈕,低電平有效;ATX_ENATX是電源加電信號,低有效;RESET_N是熱復位信號,低有效;POR_N是上電復位信號,低有效;PCIE_SLOT_RST_N是所有的總線和接口標準(Peripheral Component Interface Express, PCIE)插槽端的復位信號,信號數(shù)目根據(jù)PCIE設備而定。
圖1 上電時序圖
FT1500A對主板上各個模塊的上電時序的具體要求如下,T0:作為上電復位控制器的CPLD或FPGA加電并完成復位;T1:加電按鈕按下;T2:加電按鈕彈起,ATX電源加電;T3:收到ATX加電完成信號,拉低PCIE_SLOT_RST;T4:相對T3時刻約延時約20 ms,給1.8 V IO電源加電;T5:收到加電完成信號;T6:相對T5時刻延時20 ms,VDD_CORE電源上電;T7:收到上電完成信號;T8:相對T7時刻延時10 ms,給PCIE0.95V核心電源加電;T9:收到PCIE0.95V上電完成信號,給VDDQ_MCU1.5V電源加電;T10:收到上電完成信號,保持REST_N信號高電平,拉低POR_N開始上電復位;T11:相對T9時刻延時40 ms,拉高POR_N,完成上電復位;T12:相對于T9時刻延時100 ms,拉高PCIE_SLOT_RST_N,完成PCIE設備復位。
想要得到可控的上電時序,就需要選擇帶有使能功能的電源控制芯片。為了得到質量較好的電源,選用Linear公司的高品質的DC-DC線性電源模塊LTM4627。其最大工作電流可以達到15A,具有寬輸入電壓范圍4.5 V~20 V,輸出電壓范圍0.6 V~5 V,可以由外部電阻控制;電源效率最多可達93%,采用LGA封裝15 mm×15 mm×4.32 mm,較小的封裝有利于增大電路設計空間,且輸出誤差不超過1.5%。LTM4627設計成本較低,只需要極少的外部電路配置就可以實現(xiàn)穩(wěn)定可靠的直流電源[2]。
這里只列出CPU核心電源FTCORE的設計過程,如圖2所示,利用LTM4627將5 V的輸入電壓VCC5轉化為0.9 V的輸出電壓VCC_FTCORE,為CPU內核供電。FTCORE_RUN是上電控制信號,F(xiàn)TCORE_PGOOD2是上電完成信號。上電階段,按照系統(tǒng)時序控制程序,控制器將FTCORE_RUN拉高,LTM4627開始工作,數(shù)毫秒后,LTM4627自檢VCC_FTCORE穩(wěn)定到0.9 V后拉高FTCORE_PGOOD2,告訴控制器自己上電完畢,系統(tǒng)繼續(xù)進行下一步時序流程。
圖2 CPU核心電源VCC_FTCORE電路實現(xiàn)
根據(jù)芯片手冊,輸出電壓僅由F12腳的下拉電壓決定,其公式為:
(1)
其中,N為LTM4627芯片的數(shù)量,在本項目中N的取值為4。對于0.9 V的VCC_FTCORE,計算可得出其配置電阻=30.2 kΩ??紤]到不存在30.2 kΩ的電阻,為了輸出精確的0.9 V電壓,此處電阻精度要求較高,絕對不能以相近的電阻代替,所以采用兩個電阻串聯(lián)的方法,配置出所需的30.2 kΩ阻值。查閱阻值表,確定了兩個阻值分別為30.1 kΩ和100 kΩ。
圖3是主板開機按鈕接口的電路設計,實際應用中將J91接到一個按鍵開關上,圖中電容非常重要,其作用是電路防抖動,沒有電容器的存在,電路極易在受到電磁干擾的情況下發(fā)生誤動作。當開關按下,SysPowerOnKey即被拉低,系統(tǒng)收到開機的命令,開始按照時序控制程序啟動各個電源。復位按鍵的電路設計與圖3相似。
圖3 開機按鈕接口電路
由于需要控制的時序關系比較復雜,外圍簡單的邏輯電路不能很好地實現(xiàn),因此考慮使用可編程邏輯控制器CPLD,可以很方便地實現(xiàn)時序控制,同時為主板其他功能提供控制資源。CPLD是一種多輸入多輸出的邏輯控制器件,利用內部的邏輯單元,通過簡單的編程,就能實現(xiàn)信號的順序控制和延遲控制[3]。本課題選擇Altera公司的EPM240作為控制模塊的主控芯片,其頻率為201.1 MHz,電源電壓范圍為2.375 V~2.625 V,3 V~3.6 V ,工作溫度范圍為0℃~+85℃,輸入/輸出接口標準為LVTTL, LVCMOS, PCI。EPM240包含100個管腳,其中可用的I/O資源多達80個,基本可以滿足所有的時序控制需求以及所有的主板電路控制需求[4]。 本課題控制信號統(tǒng)一使用TTL電平,確定CPLD Bank2供電電壓為3.3 V。在Quartus中,將需要控制的信號分配到CPLD的各個I/O中,部分I/O分配如圖4所示,最后在電路原理圖中,將信號對應地連接起來。CPLD具有足夠的I/O資源,且設計難度較低,這是它的優(yōu)勢。采用的燒寫器是USB Blaster Rev.C,JTAG模式定義:1-TCK; 2-GND; 3-TDO; 4-VCC; 5-TMS; 6-NC; 7-NC; 8-NC; 9-TDI; 10-GND。
圖4 CPLD的部分引腳分配
軟件部分利用Quartus平臺實現(xiàn),采用的編程語言是VHDL。編程思想是,為了節(jié)約系統(tǒng)的計算資源,沒有使用計時器和計數(shù)器寄存器,而是選擇一種以CPLD的時鐘作為計時工具,在上一個動作之后,等待相應的時鐘數(shù),也就是某個特定的時長,再開啟下一個電壓,繼續(xù)重復等待并使能,依次打開主板各部分的電源。根據(jù) FT1500A對時序的要求,設計出CPLD上電時序控制程序流程如圖5所示。
圖5 CPLD上電時序控制程序流程圖
3.1延時的實現(xiàn)
利用統(tǒng)計系統(tǒng)時鐘脈沖次數(shù)的方法實現(xiàn)計時。CPLD時鐘CLK=50 MHz。定義變量sgPowerSeqCounter作為計數(shù)器,從檢測到電源按鍵按下起,每次時鐘周期自加1,50k個時鐘周期即為1 ms。但是開機的時長不能超過3 min,否則視為開機故障。
if sgPowerSeqFlag='1' and SysPowerOnKey = '1' then
sgPowerSeqCounterlt;=sgPowerSeqCounter+1;
if sgPowerSeqCountergt;Xquot;9F437C6quot;then
sgPowerSeqCounterlt;=Xquot;9F437C6quot;;
end if;
end if;
3.2檢測電源按鍵狀態(tài)
開機是按下50 ms以上,一直等待按鍵抬起才開機。同樣利用變量sgPowOnCounter采集電源按鍵被按下的時間,這是為了防止按鍵抖動,如果此時間小于10 ms,則可以認為不是按鍵動作,視為無效。
if sgKeyState=′1′ and SysPowerOnKey=′0′ and sgKeyFlag=′0′ then
sgPowOnCounterlt;=sgPowOnCounter+1;
if sgPowOnCountergt;500000 and sgKeyFlag =′0′ then
sgKeyFlaglt;=′1′;
end if;
if sgPowOnCountergt;Xquot;8000000quot; then
sgPowOnCounterlt;=Xquot;8000000quot; ;
end if;
end if;
if sgKeyState =′0′and SysPowerOnKey=′1′ and sgPowOnCounterlt;500001 then
sgKeyFlaglt;=′0′;
sgPowOnCounterlt;=Xquot;0000000quot;;
end if;
3.3時序控制部分
當各種檢測完成,確定開機狀態(tài)后,控制電路按照FT1500A規(guī)定的時序依次上電。
if sgPowOnCmd=quot;11quot; then
sgPowerSeqFlaglt;=′1′;
if sgPowerSeqCounter=5 then
SysPowerOn3V3lt;=′0′; --打開 ATX power
FTPCIE_ResetSlotlt;=′0′; --拉低PCIE_Slot_RST
FTGN12_RSTlt;=′0′;
end if;
if sgPowerSeqCounter=02500000 then
FTIO_ENlt;=′1′ ; --打開VDD_IO
end if;
if sgPowerSeqCounter=05000000 then
FTCORE_ENlt;=′1′;--打開VDD_CORE
end if;
if sgPowerSeqCounter=07500000 then
FTPCIEA_ENlt;=′1′; -- 打開VDD_PCIE
end if;
if sgPowerSeqCounter=10000000 then
FTDDR_ENlt;=′1′ ; --打開VDD_MCU
end if;
if sgPowerSeqCounter= 11500000 then
FT_PORNlt;=′0′; --拉低POR_N
end if;
if sgPowerSeqCounter=12500000 then
FT_PORNlt;=′1′;--拉高POR_N
FTGN12_RSTlt;=′1′;
end if;
if sgPowerSeqCounter=15500000 then
FTPCIE_ResetSlot lt;=′1′;--拉高PCIE_SLOT_RET
end if;
if sgKeyFlag=′1′ and SysPowerOnKey=′1′ and sgPowerSeqCountergt;Xquot;9F437C0quot; then
--delay 3S=Xquot;8F0D180quot;
sgPowerSeqFlaglt;=′0′;
sgKeyFlaglt;=′0′;
sgPowerSeqCounterlt;=Xquot;0000000quot;;
sgPowOnCounterlt;=Xquot;0000000quot;;
sgPowOnCmdlt;=quot;00quot;;
sgSysStatelt;=′1′;
end if;
end if;
軟硬件開發(fā)之后,在主板上利用示波器對時序電路進行測試。示波器采用雙通道、單次出發(fā)設置,捕捉上電過程的信號上升沿。通過一一測試,發(fā)現(xiàn)利用時鐘計時的方法可以比較精確地實現(xiàn)時序的控制,上電過程時延比較穩(wěn)定,系統(tǒng)運行良好。如果想要調整延遲時間,也可以很方便地進行編程修改。測試中也發(fā)現(xiàn)了一個問題,繪制PCB時未充分考慮測試需求,沒有能夠設置足夠的信號測試點,給測試工作帶來了一些小困難,所以在以后的設計中要注意安排好系統(tǒng)的可測試性設計。總之,利用文中所設計的軟硬件控制方法,成功地實現(xiàn)了FT1500A上電時序部分的設計與實現(xiàn)。為系統(tǒng)的進一步調試和設計奠定了基礎。
[1] 錢衛(wèi)明, 陰澤杰. 可編程延時芯片及其在系統(tǒng)時序控制中的應用[J]. 核電子學與探測技術, 2000, 20(4):305-307.
[2] 陳忠民,李鷹,ATX結構計算機系統(tǒng)的故障診斷[J].微型機與應用,2001,20(9):20-23.
[3] 楊功立. 基于“龍芯”CPU的高性能安全服務器主板的設計與研究[D]. 哈爾濱:哈爾濱工程大學, 2003.
[4] 陳曙光. 基于EPM240T的CPLD開發(fā)板設計與實現(xiàn)[J]. 天津職業(yè)大學學報, 2010, 19(3):80-82.
2017-04-28)
馬強(1991-),男,碩士,主要研究方向:模式識別與智能系統(tǒng)。
李競航(1984-),男,碩士,主要研究方向:嵌入式系統(tǒng)設計。
王建民(1978-),男,碩士,工程師,主要研究方向:通信與信息系統(tǒng)。
Implementation of power-on timing control of FT1500A motherboard
Ma Qiang1, Li Jinghang2, Wang Jianmin1, Yang Shaoying1
(1. National Computer System Engineering Research Institute of China, Beijing 100083, China; 2. LiuSuoZhiDa (Beijing) Science and Technology Ltd, Beijing 100083, China)
This paper studies a power-on timing control method based on the domestic processor FT1500A. The hardware adopts the programmable logic controller EPM240 as the control unit, and uses the power module LTM4627 to realize the power supply enabling control and the stable detection. The software part uses the VHDL language on the Quartus platform and realizes the delay control by the clock pulse of the statistical programmable logic controller. Using the logic unit within the controller, the power module is achieved to enable the control. Finally the design of the correctness and reliability are verified by the oscilloscope’s single trigger function.
power-on timing control; FT1500A; CPLD; VHDL language
TP30
A
10.19358/j.issn.1674- 7720.2017.22.011
馬強,李競航,王建民,等.FT1500A主板上電時序控制的設計與實現(xiàn)J.微型機與應用,2017,36(22):37-40,44.