国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于龍芯1C 的NTP 時(shí)間服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)

2021-04-30 07:24:46籍明慧裴煥斗王佳寶張川川
電子設(shè)計(jì)工程 2021年7期
關(guān)鍵詞:龍芯內(nèi)核串口

籍明慧,裴煥斗,莊 杰,王佳寶,張川川

(1.中北大學(xué)儀器與電子學(xué)院,山西太原 030051;2.山西百信信息技術(shù)有限公司,山西太原 030006)

計(jì)算機(jī)的普遍使用以及網(wǎng)絡(luò)的快速發(fā)展,帶來(lái)了許多便利的同時(shí),也讓使用者對(duì)其產(chǎn)生了很強(qiáng)的依賴性,稍有問(wèn)題將會(huì)帶來(lái)很大的損失。其中,時(shí)鐘是一個(gè)很關(guān)鍵的要素。尤其在工業(yè)控制、電力、軍事等對(duì)時(shí)鐘要求較高[1-3]的領(lǐng)域,如何確保時(shí)間的準(zhǔn)確性與同步性是一個(gè)值得研究的問(wèn)題。通常情況下,計(jì)算機(jī)由實(shí)時(shí)時(shí)鐘(RTC)提供實(shí)時(shí)時(shí)間,或者可以理解成為系統(tǒng)提供一個(gè)標(biāo)準(zhǔn)時(shí)間,對(duì)于聯(lián)網(wǎng)的主機(jī),如有需要,可以通過(guò)自動(dòng)或手動(dòng)從Internet 時(shí)間服務(wù)器同步時(shí)間。與此同時(shí),由于機(jī)器外部環(huán)境改變,內(nèi)部硬件老化損壞等原因,計(jì)算機(jī)時(shí)鐘在功能性和可靠度上都是有限的,時(shí)鐘總會(huì)出現(xiàn)問(wèn)題。因此,對(duì)于需要一個(gè)精確時(shí)鐘的計(jì)算機(jī),一個(gè)標(biāo)準(zhǔn)的時(shí)間基準(zhǔn)是至關(guān)重要的。

NTP(Network Time Protocol)是一個(gè)時(shí)間同步協(xié)議,第一次實(shí)現(xiàn)是在1980 年,經(jīng)過(guò)不斷發(fā)展,已經(jīng)可以為計(jì)算機(jī)提供高精度的同步授時(shí)服務(wù),局域網(wǎng)內(nèi)精度已經(jīng)達(dá)到了毫秒級(jí),且在實(shí)際部署上較為簡(jiǎn)單。李培基等[4]對(duì)NTP、PTP(Precise Time Protocol)及其他網(wǎng)絡(luò)時(shí)間同步協(xié)議進(jìn)行了分析,介紹了基本概念,比較了各個(gè)協(xié)議運(yùn)用的優(yōu)缺點(diǎn);陳希等[5]深入分析了NTP 和PTP 的時(shí)間同步誤差,并給出了優(yōu)化方法;何承恩等[6]設(shè)計(jì)了一個(gè)跨平臺(tái)的網(wǎng)絡(luò)時(shí)間同步模塊,提高了有時(shí)間同步需求的跨平臺(tái)軟件開(kāi)發(fā)效率;王錚等[7]基于AM3352 處理器設(shè)計(jì)了嵌入式北斗網(wǎng)絡(luò)時(shí)間服務(wù)器。這些文獻(xiàn)對(duì)NTP 時(shí)間服務(wù)器設(shè)計(jì)提供了依據(jù)。基于此,文中設(shè)計(jì)了以國(guó)產(chǎn)自主北斗衛(wèi)星導(dǎo)航系統(tǒng)BDS(BeiDou Navigation Satellite System)為時(shí)間源,以國(guó)產(chǎn)處理器龍芯1C300B 為主控板處理器,嵌入式開(kāi)源Linux 系統(tǒng)搭載NTP 軟件的時(shí)間服務(wù)器,自主可控、功能豐富且安全可靠。

1 總體思路及相關(guān)原理

基于成本、自主可控、精度要求等方面的考慮,采用北斗衛(wèi)星導(dǎo)航系統(tǒng)與NTP 的軟硬件混合同步實(shí)現(xiàn)精確授時(shí),有效地避免了純硬件授時(shí)成本太高以及純軟件授時(shí)精度不夠的問(wèn)題。通過(guò)北斗時(shí)鐘接收器與授時(shí)天線相連采集時(shí)鐘信號(hào)經(jīng)過(guò)處理后通過(guò)串口傳到主控板,作為校時(shí)的時(shí)鐘源,主控板對(duì)時(shí)鐘信息進(jìn)行下一步處理,并且在顯示屏上顯示部分時(shí)間內(nèi)容;與此同時(shí),時(shí)間服務(wù)器開(kāi)啟NTP 服務(wù),進(jìn)行相關(guān)配置,實(shí)現(xiàn)授時(shí)服務(wù)。總體思路如圖1 所示。

圖1 總體思路框圖

1.1 NTP協(xié)議及其原理

網(wǎng)絡(luò)時(shí)間同步協(xié)議之中NTP 的應(yīng)用是最常見(jiàn)的,只要支持網(wǎng)絡(luò)套接字的計(jì)算機(jī)系統(tǒng)均可應(yīng)用NTP 協(xié)議[8]。NTP 的目的是在有限的局域網(wǎng)環(huán)境中提供安全和可靠的時(shí)間同步服務(wù),一般采用C/S模式,客戶端借助NTP 協(xié)議從服務(wù)器獲取準(zhǔn)確的時(shí)間,在校時(shí)的同時(shí),NTP 能夠通過(guò)主機(jī)與客戶端雙向信息傳輸持續(xù)跟蹤時(shí)間變化并自動(dòng)進(jìn)行調(diào)節(jié)[9-11]。

NTP 校時(shí)是通過(guò)NTP 報(bào)文在客戶端與服務(wù)端之間的傳送時(shí)間來(lái)確定客戶機(jī)和服務(wù)器之間的時(shí)間偏差和網(wǎng)絡(luò)時(shí)延。傳輸模型如圖2 所示。

圖2 NTP傳輸模型

客戶端向服務(wù)器端發(fā)出請(qǐng)求報(bào)文,服務(wù)器通過(guò)消息處理后,返回一個(gè)消息包給客戶端。其中θ為客戶端與服務(wù)器端的時(shí)間基準(zhǔn)差值,δ為網(wǎng)絡(luò)傳輸時(shí)延。由此可得:

客戶機(jī)通過(guò)計(jì)算θ和δ的值即可調(diào)整本地的時(shí)鐘。

1.2 北斗授時(shí)原理

北斗衛(wèi)星導(dǎo)航系統(tǒng)是中國(guó)自主建設(shè)、獨(dú)立運(yùn)行的全球衛(wèi)星導(dǎo)航系統(tǒng),是我國(guó)國(guó)家重大戰(zhàn)略基礎(chǔ)設(shè)施[12],而且BDS 不依賴于GPS,自主可控程度高。

北斗衛(wèi)星通過(guò)高精度原子鐘向地面設(shè)備發(fā)送包含時(shí)鐘信息報(bào)文的方式來(lái)實(shí)現(xiàn)授時(shí)服務(wù),有單、雙向兩種授時(shí)功能[13]。衛(wèi)星授時(shí)就是計(jì)算接收機(jī)本地時(shí)鐘與衛(wèi)星系統(tǒng)時(shí)間的偏差,根據(jù)偏差進(jìn)行本地時(shí)鐘頻率的調(diào)整[14]。單雙向的差別就在于是否對(duì)傳輸數(shù)據(jù)所產(chǎn)生的時(shí)間進(jìn)行補(bǔ)償。在實(shí)際應(yīng)用中,可以通過(guò)對(duì)地面用戶設(shè)備接收機(jī)進(jìn)行配置,選擇需要的授時(shí)方式。

2 硬件方案

龍芯1C 芯片是龍芯系列較早的高性價(jià)比功能性產(chǎn)品,兼容MIPS 指令集,主頻達(dá)到了300 MHz,豐富的擴(kuò)展接口可以使開(kāi)發(fā)者進(jìn)行靈活的功能設(shè)計(jì),且龍芯1C 包含浮點(diǎn)處理單元,為開(kāi)發(fā)者提供了足夠的計(jì)算能力[15]。

系統(tǒng)總體由北斗時(shí)間接收處理模塊、處理器模塊、電源模塊以及顯示模塊等部分組成。北斗時(shí)間接收處理模塊實(shí)現(xiàn)授時(shí)時(shí)統(tǒng)UTC 的時(shí)間溯源,并進(jìn)行處理之后通過(guò)串口將精確的時(shí)鐘信息傳送給主控制器。主控制器模塊以龍芯1C300B 處理器為核心,存儲(chǔ)單元包含SDRAM、NAND Flash、SD 卡等;網(wǎng)絡(luò)模塊由10M/100M 以太網(wǎng)控制器和RJ45 網(wǎng)絡(luò)接口組成;電源模塊將外部5 V 電源轉(zhuǎn)換為系統(tǒng)各部分需要的3.3 V 和1.2 V 電壓;JTAG 為系統(tǒng)調(diào)試接口;晶振電路為系統(tǒng)提供內(nèi)部時(shí)鐘信號(hào);顯示屏通過(guò)串口與主板連接進(jìn)行時(shí)間顯示。硬件結(jié)構(gòu)組成如圖3 所示。

圖3 硬件結(jié)構(gòu)組成

2.1 以太網(wǎng)控制模塊電路

系統(tǒng)采用了DM9161C 快速以太網(wǎng)物理層單片收發(fā)器,DM9161C 是一個(gè)物理層、低功耗和單片10BASE-T/100BASE-TX 收發(fā)器,芯片上集成完整物理層收發(fā)器和濾波器,不需要外部濾波器就可在以太網(wǎng)操作期間將信號(hào)傳輸。并且提供中斷處理功能,在接口功能管理上有著更好的控制。通過(guò)具有可屏蔽中斷輸出能力的MII 管理接口,DM9161C 不僅連接了媒體訪問(wèn)控制(MAC)層,而且確保了高互操作性和靈活性。

其中,T/RXCLK、T/RXD[0:3]引腳分別實(shí)現(xiàn)發(fā)送/接收數(shù)據(jù)的功能,COL 和CRS 引腳實(shí)現(xiàn)狀態(tài)指示及檢測(cè)控制功能,MDIO 和MDC 引腳分別具有管理數(shù)據(jù)引腳及其時(shí)鐘的功能。DM9161C 的接口電路如圖4 所示。

信號(hào)的發(fā)送和接收過(guò)程,通過(guò)DM9161C 和RJ45接口的相應(yīng)引腳連接實(shí)現(xiàn)。RJ45 的電路原理如圖5所示。

2.2 電源電路

系統(tǒng)電源部分使用MP1482 同步降壓穩(wěn)壓器將5 V 的直流電壓轉(zhuǎn)換為系統(tǒng)各部分所必需的3.3 V 與1.2 V 電壓。MP1482 在4.75 V 至18 V 的寬輸入電壓下提供2 A 的連續(xù)負(fù)載電流。并且在關(guān)機(jī)模式下,電源電流下降到1 μA,電源的轉(zhuǎn)換效率高達(dá)93%。電源電路的實(shí)現(xiàn)原理如圖6 所示。

圖4 DM9161C的接口電路圖

圖5 RJ45接口電路原理圖

2.3 復(fù)位電路

復(fù)位電路是系統(tǒng)不可缺少的重要組成電路。在該系統(tǒng)中,通過(guò)使用MAX811 芯片設(shè)計(jì)復(fù)位電路,來(lái)保證系統(tǒng)工作的穩(wěn)定性。

系統(tǒng)開(kāi)始工作時(shí),如果接入的電壓值低于設(shè)置的TH(閾值電壓),產(chǎn)生一個(gè)復(fù)位信號(hào),并保持RESET 引腳為低電平,在VCC 上升到TH 以上后,使其保持至少140 ms 后重置閾值。手動(dòng)復(fù)位功能可以通過(guò)控制MR 引腳實(shí)現(xiàn),按下S1 按鍵后,強(qiáng)制使MR引腳接地變?yōu)榈碗娖?,產(chǎn)生復(fù)位輸出信號(hào)。復(fù)位電路如圖7 所示。

圖6 電源轉(zhuǎn)換電路原理圖

圖7 復(fù)位電路原理圖

2.4 顯示模塊實(shí)現(xiàn)

時(shí)間信息用數(shù)字、字母就可以完全表示,所以采用RSI1602BNU 串口液晶顯示屏進(jìn)行時(shí)間顯示,UART-TTL5.0 串行接口,可節(jié)約CPU 的IO 資源;另外模塊自動(dòng)初始化1602 顯示屏,無(wú)需另外開(kāi)發(fā)驅(qū)動(dòng)程序。時(shí)間信息從北斗時(shí)鐘處理器通過(guò)串口傳送到1C 主控板上,與此同時(shí)數(shù)據(jù)經(jīng)過(guò)處理通過(guò)串口傳送到顯示屏進(jìn)行顯示,流程圖如圖8 所示。

2.5 硬件系統(tǒng)總結(jié)

硬件系統(tǒng)主要包括了北斗時(shí)間接收處理模塊、主控制器模塊、電源模塊、顯示模塊及各個(gè)芯片之間的接口電路。硬件設(shè)計(jì)時(shí)充分考慮了電磁干擾、靜電防護(hù)、散熱等方面的影響,對(duì)PCB 板進(jìn)行了多次測(cè)試;對(duì)系統(tǒng)板的斷電、加電以及接口配置進(jìn)行了功能性測(cè)試,搭建了穩(wěn)定可靠的硬件平臺(tái),為軟件系統(tǒng)的搭載打好了基礎(chǔ)。

圖8 顯示模塊實(shí)現(xiàn)流程圖

3 軟件實(shí)現(xiàn)

NTP 時(shí)間服務(wù)器操作系統(tǒng)采用嵌入式Linux 系統(tǒng),服務(wù)器中部署NTP 服務(wù),系統(tǒng)其他成員與時(shí)間服務(wù)器相連,使用NTP 協(xié)議進(jìn)行時(shí)間同步。下面就系統(tǒng)的制作以及NTP 服務(wù)的部署進(jìn)行介紹。

3.1 編譯內(nèi)核

嵌入式Linux 的系統(tǒng)板資源有限,需要交叉編譯調(diào)試的方式進(jìn)行。該設(shè)計(jì)通過(guò)VMware 上安裝虛擬機(jī)的方式解決編譯問(wèn)題。虛擬機(jī)系統(tǒng)使用Ubuntu16.04,Linux 內(nèi)核使用Linux-3.18。

開(kāi)啟Ubuntu16.04 之后,拷貝內(nèi)核源碼包linux-3.18-loongson.tar.gz,并解壓至/Workstation 目錄下。

接下來(lái)直接使用make 命令進(jìn)行編譯,編譯完成后,會(huì)自動(dòng)生成內(nèi)核文件。

3.2 制作根文件系統(tǒng)

文件系統(tǒng)用于管理存儲(chǔ)介質(zhì),文件系統(tǒng)實(shí)現(xiàn)了系統(tǒng)存儲(chǔ)介質(zhì)和其他資源的交互。該設(shè)計(jì)使用buildroot 構(gòu)建根文件系統(tǒng)。

同樣與內(nèi)核編譯過(guò)程一樣,開(kāi)啟Ubuntu16.04,拷貝buildroot 源碼包buildroot-2018.02.4.tar.gz,并解壓到/Workstation/rootfs/buildroot 目錄下,然后進(jìn)入buildroot-2018.02.4 目錄。

運(yùn)行圖形化配置命令:

無(wú)特殊要求,按默認(rèn)配置即可,對(duì)于該設(shè)計(jì),需要NTP 服務(wù),故勾選NTP 軟件選項(xiàng),如圖9 所示。

圖9 buildroot配置選項(xiàng)

保存設(shè)置退出后執(zhí)行make 命令,在make 命令執(zhí)行完成之后,會(huì)生成output/images/rootfs.yaffs2img文件,該文件即為可以燒錄到主控板中的根文件系統(tǒng)鏡像。

3.3 下載并燒寫(xiě)內(nèi)核和根文件系統(tǒng)

通過(guò)TFTP 和控制臺(tái)軟件(串口助手)Putty 來(lái)將內(nèi)核文件和根文件系統(tǒng)鏡像下載到系統(tǒng)板上。通過(guò)Putty 可進(jìn)行PMON 配置和控制臺(tái)操作。

PMON 下載燒寫(xiě)內(nèi)核和根文件系統(tǒng)操作命令行代碼如下:

重啟上電之后,系統(tǒng)即可正常運(yùn)行。

3.4 NTP服務(wù)的配置

NTP 服務(wù)的配置只需修改配置文件即可完成,使用vi/etc/ntp.conf 命令對(duì)配置文件作如圖10 修改:

圖10 NTP配置文件修改

其中restrict 0.0.0.0 mask 255.255.255.0 nomodify notrap 代表著允許內(nèi)網(wǎng)中相應(yīng)網(wǎng)段的其他客戶機(jī)可以與服務(wù)器進(jìn)行時(shí)間同步,nomodify 和notrap 分別代表禁止遠(yuǎn)程主機(jī)修改本地服務(wù)器配置和拒絕特殊的ntpd 捕獲消息[16]。

這兩行命令是將這臺(tái)服務(wù)器定義為對(duì)本局域網(wǎng)提供NTP 服務(wù)。

4 設(shè)計(jì)結(jié)果及測(cè)試

將北斗時(shí)鐘接收器、授時(shí)天線、主控板、顯示屏以及客戶機(jī)按規(guī)定信號(hào)邏輯連接,上電啟動(dòng)之后,顯示屏可正常顯示時(shí)間數(shù)據(jù),且服務(wù)器與客戶機(jī)時(shí)間達(dá)到了實(shí)時(shí)同步,結(jié)果如圖11 所示。

圖11 服務(wù)器實(shí)現(xiàn)實(shí)物圖

在客戶機(jī)啟動(dòng)NTP 服務(wù),修改配置文件之后,在終端輸入ntpdate-u 192.168.2.100,出現(xiàn)adjust time server 192.168.2.100 offset-0.001062 sec,則表示客戶端時(shí)間準(zhǔn)確同步。

編寫(xiě)shell 腳本,連續(xù)運(yùn)行北斗網(wǎng)絡(luò)時(shí)間服務(wù)器24 h,數(shù)據(jù)采樣頻率設(shè)為3 s 一次,抓取其中800 組數(shù)據(jù)進(jìn)行分析。得到了NTP 時(shí)間服務(wù)器測(cè)量精度分析圖如圖12 所示。

圖12 測(cè)試結(jié)果

測(cè)試結(jié)果表明,NTP 時(shí)間服務(wù)器時(shí)間誤差的均值為0.35 ms。授時(shí)標(biāo)準(zhǔn)方差為1.783 μs。由此可見(jiàn),NTP 時(shí)間服務(wù)器可穩(wěn)定進(jìn)行時(shí)間同步服務(wù)且時(shí)間同步精度達(dá)到了毫秒級(jí)。

5 結(jié)論

該文提出了一種基于龍芯1C 的NTP 時(shí)間服務(wù)器設(shè)計(jì)方案,并且對(duì)其基本原理以及軟硬件實(shí)現(xiàn)進(jìn)行了介紹。在成本損耗、數(shù)據(jù)處理、授時(shí)精度方面具有較好的能力,在時(shí)鐘源以及服務(wù)器硬件設(shè)計(jì)上采用國(guó)產(chǎn)技術(shù),自主可控程度較高,具有較好的安全性。經(jīng)過(guò)測(cè)試,服務(wù)器時(shí)間同步功能穩(wěn)定且授時(shí)精度達(dá)到了毫秒級(jí),足以滿足諸多信息化網(wǎng)絡(luò)系統(tǒng)或者局域網(wǎng)系統(tǒng)下時(shí)間同步的要求,具有較高的應(yīng)用價(jià)值。

猜你喜歡
龍芯內(nèi)核串口
基于國(guó)產(chǎn)化龍芯的動(dòng)環(huán)數(shù)據(jù)采集系統(tǒng)
萬(wàn)物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
Linux內(nèi)核mmap保護(hù)機(jī)制研究
“龍芯之父”胡偉武
USB接口的多串口數(shù)據(jù)并行接收方法探索
基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無(wú)線通信
龍芯發(fā)布新一代處理器產(chǎn)品
静宁县| 萍乡市| 遵义市| 浦城县| 湖南省| 蒙阴县| 玉龙| 旬阳县| 班戈县| 扎鲁特旗| 河北省| 南华县| 临沧市| 左权县| 中江县| 安国市| 巴林左旗| 阿拉善盟| 同江市| 奉新县| 丰顺县| 昌邑市| 辽源市| 澳门| 星子县| 贺兰县| 延吉市| SHOW| 通城县| 调兵山市| 苗栗县| 永丰县| 称多县| 松阳县| 沙洋县| 呈贡县| 介休市| 开原市| 定襄县| 佛教| 措美县|