CN101387883A - 天文望远镜控制系统中采集与传输大量数据的方法 - Google Patents
天文望远镜控制系统中采集与传输大量数据的方法 Download PDFInfo
- Publication number
- CN101387883A CN101387883A CNA2008102009240A CN200810200924A CN101387883A CN 101387883 A CN101387883 A CN 101387883A CN A2008102009240 A CNA2008102009240 A CN A2008102009240A CN 200810200924 A CN200810200924 A CN 200810200924A CN 101387883 A CN101387883 A CN 101387883A
- Authority
- CN
- China
- Prior art keywords
- data
- mason
- function
- express
- protocol stack
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
一种自动化控制领域的天文望远镜控制系统中采集与传输大量数据的方法,具体如下:步骤一,在天文数据采集的程序启动时预先准备好各层协议的协议头,利用Mason Express函数通过人工产生所需的协议头,绕开Nios II嵌入式系统中所运行的LWIP协议栈;步骤二,对于绕开的LWIP协议栈,在Mason Express函数中设置全局指针,获取LWIP协议栈内部的信号量的句柄,同时,在Mason Express函数发送数据之前使LWIP协议栈也要发送的数据处于等待的状态,避免造成线程冲突的安全隐患。本发明通过人工产生所需的网络协议头,实现从嵌入式系统到数据采集计算机高达90Mb/s以上的数据传送速率。
Description
技术领域
本发明涉及一种自动化控制技术领域的方法,具体是一种天文望远镜控制系统中采集与传输大量数据的方法。
背景技术
在现代的测量、监测、控制、诊断、科学试验等各个领域中,数据采集系统都是必不可少的组成部分。在天文观测系统中常用数据采集系统,实现观测数据(图像、光谱等)从望远镜到控制计算机的传输。根据不同的应用需求,可以选择不同的数据采集方案:如数据采集卡方案、USB采集方案和网络采集方案等。一般来说,天文数据采集除了要求一定的传输速率外,较长的传输距离是很重要的,因为在天文观测过程中,控制采集计算机经常离望远镜比较远,所以只有网络采集方案能够实现较长距离的数据传输,并且由于网络本身的灵活性,可以实现更多的特性。
目前国家天文台天文探测器实验室研发的电子耦合组件相机控制器就是使用以太网进行数据采集的NIOS II(美国阿尔特拉公司生产的一种嵌入式处理器)嵌入式系统。它通过以太网接口从控制计算机接收指令,控制电子耦合组件进行曝光,并将图像数据从电子耦合组件读出到控制器内部的同步动态存储器中,最后通过以太网将图像数据送回控制计算机。为了实现对多台电子耦合组件相机的集群控制以及多通道并行传输,此系统采用以太网替代传统的数据采集卡实现图像数据的采集。这就对网络的传输速度提出了比较严格的要求,即要求网络传输速度至少应该达到数倍于电子耦合组件的读出速度;另一方面,由于未来的天文望远镜都将配备较大面阵的电子耦合组件,为了提高系统的整体性能,这些相机大都采用多通道读出。例如,若采用两通道读出,每通道512kp/s,总速率就是2MB/s;若采用4通道读出,每通道1Mp/s,总速率就是8MB/s。由此可见,如果要用快速以太网实现数据采集,就必须尽量发挥100Mb/s快速以太网的潜力。但是自从引入了Nios II嵌入式中央处理器以来,以太网的数据传输速率就一直是整个系统性能的瓶颈。
经对现有技术的文献检索发现,韩立昌、徐欣圻在《计算机工程》2006年第6期发表的“大型天文望远镜环境温度数据采集系统的设计”中,在我国大科学工程项目大天区面积多目标光纤光谱天文望远镜LAMOST的环境监控系统的设计上,采用USB技术进行数据的快速传输与控制,尽管采取了很多措施(例如使用UDP取代TCP、禁用UDP校验等),在Cyclone 1C20的开发板上,网络传输速度也只能达到大约1.21MB/s,这远远不能满足大量天文数据采集应用的需要。此外,尽管有很多厂家都针对Nios II嵌入式系统开发了千兆甚至是万兆以太网的TP核,但这些TP核不仅售价昂贵,编程复杂庞大,很多还需要配合专用的硬件或TCP/IP协议栈才能工作。
发明内容
本发明针对上述现有技术的不足,提出了一种天文望远镜控制系统中采集与传输大量数据的方法,使其通过自定义的网络协议头,绕开性能瓶颈LWTP协议栈,实现从嵌入式系统到数据采集计算机高达90Mb/s以上的数据传送速率。本发明不必对系统硬件做任何改动,而且丝毫不影响uCOS II操作系统和LWIP协议栈所提供的一切功能,并可以和任何嵌入式操作系统一起工作,没有操作系统时也能工作,最大限度的保护了用户原有的智力投资。
本发明是通过如下技术方案实现的,包括如下步骤:
步骤一,在天文数据采集的应用中,Nios II嵌入式系统与用于控制和数据采集的计算机运行在一个点对点的简单网络环境中,在天文数据采集的程序启动时预先准备好各层协议的协议头,利用Mason Express(“直接信使”或“直通车”)函数通过人工产生所需的协议头,绕开Nios II嵌入式系统中所运行的LWIP协议栈,实现数据发送,实现从嵌入式系统到数据采集计算机之间的直接传输;
所述实现从嵌入式系统到数据采集计算机之间的直接传输,具体为:将接收到的以太网帧的首地址以及帧长度作为参数传递给Mason Express函数,Mason Express函数将直接调用Nios II嵌入式系统配备的LAN91C111以太网控制器的驱动程序中汇编级的寄存器读写指令,将以太网帧迅速转移到芯片的内部缓存中,并将其加入到发送队列中,由PHY硬件接口完成发送。
用户数据要通过网络进行传输,必须经过网络协议的封装,即在数据前添加相应的协议头。通常,所有这些协议头都由运行在计算机系统中的TCP/IP协议栈产生;而Nios II嵌入式系统中所运行的协议栈则是由阿尔特拉公司提供的LWIP协议栈。在天文数据采集的实际应用中,Nios II嵌入式系统与用于控制和数据采集的计算机运行在一个点对点的简单网络环境中,并且两端设备的MAC地址、IP地址、UDP端口号以及数据包长度等参数全部都是可以事先确定的,同时对于每个数据包也都是相同的,这就不需要每发送一个数据包就重新计算一次协议头,而只需要在程序启动时就将各层协议的封装头都准备好,这样就可以大大节省CPU时间。
所有Nios II开发板上都配备了LAN91C111以太网控制器,这款芯片是由SMSC公司生产的MAC/PHY一体化芯片,其内部集成了可以实现以太网CSMA/CD功能的MAC(媒体访问控制器)以及物理层电平信号的发送与PHY(接收功能)模块。在安装了Altera Quaitus II软件后,用户将得到阿尔特拉公司针对Nios II编写的LAN91C111驱动程序。
步骤二,对于步骤一中绕开的LWIP协议栈,在Mason Express函数中设置全局指针,以获取LWIP协议栈内部的信号量的句柄,同时,在Mason Express函数发送数据之前使LWIP协议栈也要发送的数据处于等待的状态,避免造成线程冲突的安全隐患。
所述在Mason Express函数中设置全局指针,具体为:在Mason Express函数中增加名为low_level_init的函数,以得到LWIP协议栈的内部信号量的句柄Mason Express_semaphore。
所述在Mason Express函数发送数据之前使LWIP协议栈也要发送的数据处于等待的状态,具体为:在Mason Express函数发送数据之前调用一个等待函数,在发送完以后再次调用结束函数,即在Mason Express函数中发送数据之前调用sys_sem_wait(Mason Express_semaphore)函数,发送完以后再次调用sys_sem_signal(Mason Express_semaphore)函数,sys_sem_wait(Mason Express_semaphore)函数为Nios II嵌入式系统中的LAN91C111驱动程序提供的现有程序。
与现有技术相比,本发明具有如下有益效果:本发明中并没有也不要求抛弃LWIP协议栈(仍然可以利用LWIP实现一些其他的功能),同时也避免了可能在Mason Express发送数据的过程中LWIP也要发送数据造成线程冲突安全隐患,保证了程序的线程安全性和可扩展性。测试证明本发明可以达到高达90Mb/s以上的数据传送速率。
附图说明
图1是本发明中的Mason Express函数传输方式的流程图;
图2是现有技术中的LWIP协议栈传输方式的工作流程图。
具体实施方式
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施环境和实施过程,但本发明的保护范围不限于下述的实施例。
本实施例以采用阿尔特拉公司生产的Nios II开发板Cyclone 1C20为平台,接收端计算机运行Red Hat Enterprise Linux 4(红帽企业Linux 4)以及“天文控制采集系统”客户端平台,Red Hat Enterprise Linux 4为免费操作系统,“天文控制采集系统”客户端平台可由现有市场购得。
本实施例的实施环境如下:
.Altera Nios II开发板Cyclone 1C20;
.45MHz Fast NiosII Core(8K字节指令缓存、8K字节数据缓存);
.Simple Socket Server模板应用程序;
.传输层协议:UDP(无校验);
.发送数据包个数:8192;
.数据包大小:1066字节(负载1024字节用户数据);
.程序编译时分别采用Debug和Release编译器选项;
.接收端计算机运行Red Hat Enterpri se Linux 4以及“天文控制采集系统”客户端平台。
如图1所示,本实施例过程具体如下:
步骤一,通过人工产生所需的网络协议头,利用自定义函数Mason Express绕开LWIP协议栈而实现数据发送,实现从Nios II开发板到接受端计算机传输一幅8MB的图像,测量所需的时间,计算网络传输速率,这8MB用户数据由8192个数据帧运载,每一帧运载1024字节;
步骤二,并没有也不要求抛弃LWIP协议栈,仍然可以利用LWIP实现一些其他的功能。在Mason Express函数中为了实现对LWIP协议栈内部的信号量的操作,定义了一个全局指针“Mason Express_semaphore”,以获取这个信号量的句柄,同时,在Mason Express函数发送数据之前调用一个等待函数,在发送完以后再次调用结束函数,在Mason Express函数发送数据的过程中,使得LWIP协议栈也要发送的数据处于等待的状态,避免造成线程冲突的安全隐患。
8192个数据帧跳过LWIP协议栈和LAN91C111驱动,通过Mason Express函数直达“天文控制采集系统”,实现接受端计算机与Nios II开发板Cyclone1C20的直接交流。
所述在Mason Express函数中设置全局指针,具体为:增加名为low_level_init的函数中,并作如下处理:
dev->semaphore=sys_sem_new(1);
if(dev->semaphore==NULL)
{
ret_code=ERR_MEM;
goto exit;
}
Mason Express_semaphore=dev->semaphore;
dev->arp_semaphore=sys_sem_new(1);
这样就得到了LWIP协议栈的内部信号量的句柄Mason Express_semaphore。
所述在Mason Express函数发送数据之前调用一个等待函数,在发送完以后再次调用结束函数,具体为:在Mason Express函数中发送数据之前调用sys_sem_wait(Mason Express_semaphore)函数,发送完以后再次调用sys_sem_signal(Mason Express_semaphore)函数,sys_sem_wait(Mason Express_semaphore)函数为Nios II嵌入式系统中的LAN91C111驱动程序提供的现有程序。
本实施例方法在编译器使用Debug方式时:Mason Express可以在1.49s以内完成8MB数据的传输任务,相当于应用速率5.36MB/s,网络链路速率达47.2Mb/s以上;在编译器使用Release方式时:Mason Express可以在0.80s以内完成8MB数据的传输任务,应用速率达10MB/s以上,网络链路速率达90Mb/s以上。
如图2所示,在通过常规的LWIP协议栈传输数据时,每个数据帧需要NiosII开发板Cyclone 1C20通过厂家提供的LAN91C111驱动达致LWIP协议栈,再由LWIP协议栈传输给在Red Hat Enterprise Linux 4系统下运行的“天文控制采集系统”。
本实施例方法在编译器使用Debug方式时:LWIP大约需要6.70s来完成8MB数据的传输任务,相当于应用速率为1.19MB/s,网络链路速率为10.49Mb/s;在编译器使用Release方式时:LWIP大约需要6.60s才能完成8MB数据的传输任务,应用速率为1.21MB/s,网络链路速率为10.65Mb/s。
由本实施例的结果可知:
比较常规传输方式,本实施例所使用的Mason Express函数传输方式在网络链路速率上能够高出4倍以上,最快的速率己经接近于100Mb快速以太网的理论速率极限,完全可以满足天文数据采集系统的设计要求。
LWIP协议栈传输方式与Mason Express函数传输方式在性能上的比较,具体如表1所示。
Claims (4)
1、一种天文望远镜控制系统中采集与传输大量数据的方法,其特征在于,包括如下步骤:
步骤一,在天文数据采集中,Nios II嵌入式系统与用于控制和数据采集的计算机运行在一个点对点的简单网络环境中,在天文数据采集的程序启动时预先准备好各层协议的协议头,利用Mason Express函数通过人工产生所需的协议头,绕开Nios II嵌入式系统中所运行的LWIP协议栈,实现数据发送,实现从嵌入式系统到数据采集计算机之间的直接传输;
步骤二,对于步骤一中绕开的LWIP协议栈,在Mason Express函数中设置全局指针,以获取LWIP协议栈内部的信号量的句柄,同时,在Mason Express函数发送数据之前使LWIP协议栈也要发送的数据处于等待的状态,避免造成线程冲突的安全隐患。
2、根据权利要求1所述的天文望远镜控制系统中采集与传输大量数据的方法,其特征是,所述实现从嵌入式系统到数据采集计算机之间的直接传输,具体为:将接收到的以太网帧的首地址以及帧长度作为参数传递给Mason Express函数,Mason Express函数将直接调用Nios II嵌入式系统配备的LAN91C111以太网控制器的驱动程序中汇编级的寄存器读写指令,将以太网帧迅速转移到芯片的内部缓存中,并将其加入到发送队列中,由PHY硬件接口完成发送。
3、根据权利要求1所述的天文望远镜控制系统中采集与传输大量数据的方法,其特征是,所述在Mason Express函数中设置全局指针,具体为:在MasonExpress函数中增加名为low_level_init的函数,以得到LWIP协议栈的内部信号量的句柄Mason Express_semaphore。
4、根据权利要求1所述的天文望远镜控制系统中采集与传输大量数据的方法,其特征是,所述在Mason Express函数发送数据之前使LWIP协议栈也要发送的数据处于等待的状态,具体为:在Mason Express函数发送数据之前调用一个等待函数,在发送完以后再次调用结束函数,即在Mason Express函数中发送数据之前调用sys_sem_wait(Mason Express_semaphore)函数,发送完以后再次调用sys_sem_signal(Masorn Express_semaphore)函数,sys_sem_wait(Mason Express_semaphore)函数为Nios II嵌入式系统中的LAN91C111驱动程序提供的现有程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102009240A CN101387883A (zh) | 2008-10-09 | 2008-10-09 | 天文望远镜控制系统中采集与传输大量数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102009240A CN101387883A (zh) | 2008-10-09 | 2008-10-09 | 天文望远镜控制系统中采集与传输大量数据的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101387883A true CN101387883A (zh) | 2009-03-18 |
Family
ID=40477337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008102009240A Pending CN101387883A (zh) | 2008-10-09 | 2008-10-09 | 天文望远镜控制系统中采集与传输大量数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101387883A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176442A (zh) * | 2012-08-27 | 2013-06-26 | 中国科学院国家天文台南京天文光学技术研究所 | 天文望远镜与umac控制器通讯的方法 |
CN103200253A (zh) * | 2013-03-27 | 2013-07-10 | 江苏航天智联信息科技发展有限公司 | 一种面向水利物联网的多重异构网络通信协议构建方法 |
CN104076769A (zh) * | 2014-06-10 | 2014-10-01 | 中国科学院紫金山天文台 | 望远镜圆顶的以太网控制装置 |
CN108243160A (zh) * | 2016-12-26 | 2018-07-03 | 同方威视技术股份有限公司 | 拉曼光谱设备及其通信方法 |
CN109302575A (zh) * | 2018-08-21 | 2019-02-01 | 广州市保伦电子有限公司 | 一种基于IOT模块的wifi会议系统 |
CN112948235A (zh) * | 2021-01-28 | 2021-06-11 | 维沃移动通信有限公司 | 数据包生成方法、装置及电子设备 |
-
2008
- 2008-10-09 CN CNA2008102009240A patent/CN101387883A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176442A (zh) * | 2012-08-27 | 2013-06-26 | 中国科学院国家天文台南京天文光学技术研究所 | 天文望远镜与umac控制器通讯的方法 |
CN103176442B (zh) * | 2012-08-27 | 2015-01-28 | 中国科学院国家天文台南京天文光学技术研究所 | 天文望远镜与umac控制器通讯的方法 |
CN103200253A (zh) * | 2013-03-27 | 2013-07-10 | 江苏航天智联信息科技发展有限公司 | 一种面向水利物联网的多重异构网络通信协议构建方法 |
CN104076769A (zh) * | 2014-06-10 | 2014-10-01 | 中国科学院紫金山天文台 | 望远镜圆顶的以太网控制装置 |
CN108243160A (zh) * | 2016-12-26 | 2018-07-03 | 同方威视技术股份有限公司 | 拉曼光谱设备及其通信方法 |
CN109302575A (zh) * | 2018-08-21 | 2019-02-01 | 广州市保伦电子有限公司 | 一种基于IOT模块的wifi会议系统 |
CN112948235A (zh) * | 2021-01-28 | 2021-06-11 | 维沃移动通信有限公司 | 数据包生成方法、装置及电子设备 |
CN112948235B (zh) * | 2021-01-28 | 2024-03-22 | 维沃移动通信有限公司 | 数据包生成方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101387883A (zh) | 天文望远镜控制系统中采集与传输大量数据的方法 | |
CN107203484B (zh) | 一种基于FPGA的PCIe与SRIO总线桥接系统 | |
CN100471156C (zh) | 数据总线桥接器及其工作方法 | |
US9639447B2 (en) | Trace data export to remote memory using remotely generated reads | |
US9684583B2 (en) | Trace data export to remote memory using memory mapped write transactions | |
CN106648896B (zh) | 一种Zynq芯片在异构称多处理模式下双核共享输出外设的方法 | |
JPH11338734A (ja) | コンピュ―タシステムおよびこのコンピュ―タシステムを動作させる方法 | |
CN101866328A (zh) | 一种自动访问的串行总线读写控制方法 | |
CN113190291B (zh) | 一种基于片上网络数据采集的可配置协议转换系统及方法 | |
CN108650136A (zh) | 一种实现Powerlink工业实时以太网通讯的主/从站卡的设计方法 | |
CN108199867B (zh) | 一种有线传感器网络的组网方法 | |
KR100954568B1 (ko) | 집적 회로 내에서의 진단 데이터 수집 장치 및 방법 | |
CN109525472B (zh) | 一种总线通讯转换电路、装置及系统 | |
CN101778038B (zh) | 基于千兆以太网的嵌入式设备高速数据传输系统 | |
CN115622896A (zh) | 一种axi4高速总线及多队列仿真验证方法及仿真验证装置 | |
CN209017081U (zh) | 一种基于PowerPC处理器的高精度同步信息处理系统 | |
CN105939238A (zh) | 一种基于SOC隔离Memory的10Gbps以太网实时数据采集方法 | |
CN106126452A (zh) | 基于IIC协议的Linux操作系统与裸机通信的方法 | |
CN112800001B (zh) | 一种基于arm平台架构的高性能物联网硬件平台及方法 | |
CN115296743A (zh) | 光纤通信转接系统 | |
CN108132636A (zh) | 基于单片机控制的多通道数据采集处理系统 | |
CN112947156A (zh) | 一种基于fpga的分布式数据传输系统及方法 | |
CN109144742A (zh) | 通过队列交换信息的方法和处理队列的系统 | |
CN115328832B (zh) | 一种基于pcie dma的数据调度系统与方法 | |
CN105929755B (zh) | 一种可实现智能化控制的云终端用usb集线模块 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090318 |