论文部分内容阅读
【摘要】现代数字电视系统,需要精准的时钟信号,重点设备也需要进行完善的授时。对数字电视系统而言,由于播出方式的自动化,对时间的准确性和一致性有高度的要求。电视台内部的播出和设备网管系统,需要与各系统、各种设备进行对接,时钟系统显得尤为重要。准确的时钟信号,可以保证台内所有设备均接收使用相同的时钟信号,用以保证播出的准确性与安全性。在地球站的播出中,需要保证时钟系统稳定、可靠。对于时钟系统,要做好时钟信号的同步, 保证系统内所有设备处于同一步调。目前常用的方法是使用GPS和互联网校时,因播出机房内GPS信号很弱,GPS接收器放在室外容易引入干扰和雷击,因此采用了通过互联网服务器获取标准时间,使用单片机隔离互联网的方式构建局域网时间服务器。
【关键词】单片机;网络安全;网络校时
中图分类号:TN92 文献标识码:A DOI:10.12246/j.issn.1673-0348.2021.05.042
计算机网络的飞速发展,使得基于网络的计算机应用也在迅速增加。网络信息系统给社会带来极大的经济效益,但安全问题也随之而来。对于数字电视系统而言,和互联网连接会有比较大的网络安全风险,设备面临网络攻击,暴露,用户的口令、数据库的信息等内容有遭到窃取的风险,使播出面临网络风险的问题,所以网络安全越来越受到重视和关注。对于某些重要设备,不需联网的计算机一般都做到和互联网物理隔绝,确保网络和信息安全,完全杜绝了各种可能的外部网络的攻击或泄密。因为实现的任务很轻,现在单片机的性能已能满足需求,所以使用单片机完成此项功能,同时也提高设备的可靠性。
开源单片机开发平台比较流行的是Arduino,它不仅是一个优秀的硬件开发平台,更是硬件开发的趋势。Arduino抛开了传统硬件开发的复杂操作,不需要了解硬件的内部结构和寄存设置,也不需要过多的电子知识和编程知识,而只需通过简单的学习,便可利用它开发出各种出色的项目,大大节约学习成本,缩短开发周期。
1. 时间服务器的硬件组成
时间服务器利用两个Arduino主板,Arduino主板A和Arduino主板B,以及两块网络模块,一个电子时钟构建一个与外网隔离的服务器端。网络模块采用W5100,每个W5100模块通过SPI接口分别和每块主板相连接,主板A和主板B通过串口相连接,实时时钟模块DS3231通过I2C总线与主板B相连接,各个硬件之间的连接组成的系统图1。这样就避免了与外网直接连接而带来的外部网络攻击的风险。从而使得本站的内网和外网形成一个有效的物理隔离。确保内部网络和设备免受侵扰。
Aruino主板的种类有很多,在这里我们选用了功能比较强大和稳定性更强的Aruino MAGE2560。它的核心芯片主要是封装的AVR架构,它是一种基于AVR增强RISC架构的低功耗CMOS8位微控制器,具有JTAG、中断、SPI、TWI(兼容I2C)、USART、PWM等硬件接口,方便软件调试和外部设备的连接。通过在单个时钟周期中执行强大的指令实现了接近1MIPS/MHz的吞吐量,允许系统设计人员优化功耗和处理速度。
W5100是一种款多功能的单片网络接口芯片,内部集成有10/100以太网控制器,主要应用于高集成、高稳定、高性能和低成本的嵌入式系统中,使用W5100可以实现没有操作系统的Internet连接,W5100内部集成了全硬件的TCP/IP协议栈、以太网介质传输层和物理层(PHY)。硬件TCP/IP协议栈支持TCP、UDP、IPv4、ICMP、ARP、IGMP和PPPoE,这些协议已经连续多年在各种实际应用中得以证明,W5100内部还集成有16KB存储器用于数据传输。使用W5100不需要考虑以太网控制,只要进行简单的端口(Socket)编程。W5100提供3种接口:直接并行总线、间接并行总线和SPI总线與MCU接口非常简单,就像访问外部存储器一样。
DS3231是一个由温度补偿32kHz晶体振荡器驱动的串行RTC,提供了一个稳定和准确的参考时钟,在环境温度从-40°C到+85°C下保持RTC每年±2分钟的精度。RTC是一个低功耗时钟/日历,有两个可编程的时间报警和一个可编程的方波输出,时钟/日历提供秒、分钟、小时、日、日、月和年信息,月末的日期会自动调整天数少于31天的月份,包括闰年的更正。时钟运行在24小时或12小时的格式与AM/PM指示器。内部寄存器可以通过I2C总线接口访问。一个温度补偿的电压参考和比较电路监测VCC的水平,以检测电源故障,并在必要时自动切换到备用电源。RST引脚提供外部按钮功能,并作为电源故障事件的指示器。
2. 时间服务器软件
首先搭建一个集成开发环境,简称IDE。Arduino官网平台下载需要的IDE版本,下载完成后,按步骤进行安装,开发环境就完成后就可以在Arduino进行单片机开发了。
Arduino主板A与网络模块连接就构成了一个互联网NTP时间服务器的客服端,通过NTP时间协议来获得一个标准时间。然后按照年月日时分秒的格式通过串口发送给Arduino主板B,以方便Arduino主板B校准内部时间。Arduino主板A程序流程图如图(2):
初始化的过程主要有设置动态IP地址、MAC地址、NTP Server地址、时区、UDP端口、看门狗、串口1/2的波特率以及校验位。获取标准时间的发送请求后看是否获得应答,获得应答就通过串口2将时间发送出去,没有得到应答延时200ms再次请求,直到得到应答,程序设定延时10分钟后再次重复以上流程。
Arduino主板B与网络模块和实时时钟DS3231连接组成内部局域网的NTP服务器,通过交换机给内部的局域网提供一个安全可靠的时间。两个单片机经过串口通信后,Arduino主板B获得Arduino主板A发送的时间后对内部实时时钟进行校准。Arduino主板B程序流程图(3)如下:
初始化的过程主要有设置静态IP地址、MAC地址、串口2波特率以及校验位、看门狗,实时时钟DS3231通过串口2接收到Arduino主板A发送的时间后,按照年月日时分秒的格式与实时时钟DS3231的时间行比对,如果比对时间不一致则调整实时时钟DS3231的时间。
Arduino主板B接收到计算机通过网络发送的时间请求时,读取DS3231的时间再通过网络模块W5100发送给内部局域网的计算机。
3. 总结
该时间服务器在地球站经过两年多时间的运行,满足了内部局域网计算机时间一致性。广播电视系统中要求的安全等级都比较高,所以在解决问题时,首先要把安全性放在第一位。本设备就是首先考虑到安全性的前提下,通过串行接口隔离两个网络的办法来解决问题,希望通过此案例给广大从业人员提供解决问题的一点思路。
参考文献:
[1]陈吕洲.ARDUINO程序设计基础[M].北京:北京航空航天大学出版社.2013.
[2]谭丽.基于NTP局域网时间同步系统研究与实现[c].大庆石油学院,2009.215505.
[3]Arduino官方网站.http://www.arduino.cc
【关键词】单片机;网络安全;网络校时
中图分类号:TN92 文献标识码:A DOI:10.12246/j.issn.1673-0348.2021.05.042
计算机网络的飞速发展,使得基于网络的计算机应用也在迅速增加。网络信息系统给社会带来极大的经济效益,但安全问题也随之而来。对于数字电视系统而言,和互联网连接会有比较大的网络安全风险,设备面临网络攻击,暴露,用户的口令、数据库的信息等内容有遭到窃取的风险,使播出面临网络风险的问题,所以网络安全越来越受到重视和关注。对于某些重要设备,不需联网的计算机一般都做到和互联网物理隔绝,确保网络和信息安全,完全杜绝了各种可能的外部网络的攻击或泄密。因为实现的任务很轻,现在单片机的性能已能满足需求,所以使用单片机完成此项功能,同时也提高设备的可靠性。
开源单片机开发平台比较流行的是Arduino,它不仅是一个优秀的硬件开发平台,更是硬件开发的趋势。Arduino抛开了传统硬件开发的复杂操作,不需要了解硬件的内部结构和寄存设置,也不需要过多的电子知识和编程知识,而只需通过简单的学习,便可利用它开发出各种出色的项目,大大节约学习成本,缩短开发周期。
1. 时间服务器的硬件组成
时间服务器利用两个Arduino主板,Arduino主板A和Arduino主板B,以及两块网络模块,一个电子时钟构建一个与外网隔离的服务器端。网络模块采用W5100,每个W5100模块通过SPI接口分别和每块主板相连接,主板A和主板B通过串口相连接,实时时钟模块DS3231通过I2C总线与主板B相连接,各个硬件之间的连接组成的系统图1。这样就避免了与外网直接连接而带来的外部网络攻击的风险。从而使得本站的内网和外网形成一个有效的物理隔离。确保内部网络和设备免受侵扰。
Aruino主板的种类有很多,在这里我们选用了功能比较强大和稳定性更强的Aruino MAGE2560。它的核心芯片主要是封装的AVR架构,它是一种基于AVR增强RISC架构的低功耗CMOS8位微控制器,具有JTAG、中断、SPI、TWI(兼容I2C)、USART、PWM等硬件接口,方便软件调试和外部设备的连接。通过在单个时钟周期中执行强大的指令实现了接近1MIPS/MHz的吞吐量,允许系统设计人员优化功耗和处理速度。
W5100是一种款多功能的单片网络接口芯片,内部集成有10/100以太网控制器,主要应用于高集成、高稳定、高性能和低成本的嵌入式系统中,使用W5100可以实现没有操作系统的Internet连接,W5100内部集成了全硬件的TCP/IP协议栈、以太网介质传输层和物理层(PHY)。硬件TCP/IP协议栈支持TCP、UDP、IPv4、ICMP、ARP、IGMP和PPPoE,这些协议已经连续多年在各种实际应用中得以证明,W5100内部还集成有16KB存储器用于数据传输。使用W5100不需要考虑以太网控制,只要进行简单的端口(Socket)编程。W5100提供3种接口:直接并行总线、间接并行总线和SPI总线與MCU接口非常简单,就像访问外部存储器一样。
DS3231是一个由温度补偿32kHz晶体振荡器驱动的串行RTC,提供了一个稳定和准确的参考时钟,在环境温度从-40°C到+85°C下保持RTC每年±2分钟的精度。RTC是一个低功耗时钟/日历,有两个可编程的时间报警和一个可编程的方波输出,时钟/日历提供秒、分钟、小时、日、日、月和年信息,月末的日期会自动调整天数少于31天的月份,包括闰年的更正。时钟运行在24小时或12小时的格式与AM/PM指示器。内部寄存器可以通过I2C总线接口访问。一个温度补偿的电压参考和比较电路监测VCC的水平,以检测电源故障,并在必要时自动切换到备用电源。RST引脚提供外部按钮功能,并作为电源故障事件的指示器。
2. 时间服务器软件
首先搭建一个集成开发环境,简称IDE。Arduino官网平台下载需要的IDE版本,下载完成后,按步骤进行安装,开发环境就完成后就可以在Arduino进行单片机开发了。
Arduino主板A与网络模块连接就构成了一个互联网NTP时间服务器的客服端,通过NTP时间协议来获得一个标准时间。然后按照年月日时分秒的格式通过串口发送给Arduino主板B,以方便Arduino主板B校准内部时间。Arduino主板A程序流程图如图(2):
初始化的过程主要有设置动态IP地址、MAC地址、NTP Server地址、时区、UDP端口、看门狗、串口1/2的波特率以及校验位。获取标准时间的发送请求后看是否获得应答,获得应答就通过串口2将时间发送出去,没有得到应答延时200ms再次请求,直到得到应答,程序设定延时10分钟后再次重复以上流程。
Arduino主板B与网络模块和实时时钟DS3231连接组成内部局域网的NTP服务器,通过交换机给内部的局域网提供一个安全可靠的时间。两个单片机经过串口通信后,Arduino主板B获得Arduino主板A发送的时间后对内部实时时钟进行校准。Arduino主板B程序流程图(3)如下:
初始化的过程主要有设置静态IP地址、MAC地址、串口2波特率以及校验位、看门狗,实时时钟DS3231通过串口2接收到Arduino主板A发送的时间后,按照年月日时分秒的格式与实时时钟DS3231的时间行比对,如果比对时间不一致则调整实时时钟DS3231的时间。
Arduino主板B接收到计算机通过网络发送的时间请求时,读取DS3231的时间再通过网络模块W5100发送给内部局域网的计算机。
3. 总结
该时间服务器在地球站经过两年多时间的运行,满足了内部局域网计算机时间一致性。广播电视系统中要求的安全等级都比较高,所以在解决问题时,首先要把安全性放在第一位。本设备就是首先考虑到安全性的前提下,通过串行接口隔离两个网络的办法来解决问题,希望通过此案例给广大从业人员提供解决问题的一点思路。
参考文献:
[1]陈吕洲.ARDUINO程序设计基础[M].北京:北京航空航天大学出版社.2013.
[2]谭丽.基于NTP局域网时间同步系统研究与实现[c].大庆石油学院,2009.215505.
[3]Arduino官方网站.http://www.arduino.cc