<?xml version="1.0" encoding="gbk"?> <rss version="2.0"><channel> <title>定阅帖子更新</title> <link>http://www.broadkey.com.cn/XML.ASP</link><description>TEAM Board - 科伟奇电子</description> <copyright>TEAM 2.0.5 Release</copyright><generator>TEAM Board by TEAM5.Cn Studio</generator> <ttl>30</ttl><item><link>http://www.broadkey.com.cn/Thread.asp?tid=484 </link><title>基于SOPC技术的远程测控系统设计方案</title><author>石头</author><pubDate>2009/12/20 22:20:44</pubDate><description><![CDATA[<strong>0 引言</strong>
<p jquery1261318784846="36">　　在高温、高压、强放射性等恶劣环境下，由于测量者不能长期置身其中，使得测控非常困难。在Nios II软核CPU上移植&mu; c／OS-II实时操作系统和TCP／IP协议栈，容易实现网络通信，为远程测控提供了条件。以此为基础设计的<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_01.html" target="_blank" jquery1261318784846="35"><font color="#0033cc">嵌入式</font></a>系统具有结构小巧、实时性强、稳定性高等特点，在工业测控领域中应用前景广泛。</p>
<p>　　<strong>1 远程测控系统的硬件架构</strong></p>
<p>　　远程测控系统的硬件架构如图1所示。从图中可以看出，Nios II软核CPU及各种所需的外设IP均通过SOPCBui lder集成在一片FPGA中，构成本系统所需硬件的可重构部分，实现真正的可编程片上系统(SOPC)。</p>
<p align="center"><a href="http://www.eeworld.com.cn/uploadfile/FPGA/uploadfile/200909/20090901104942378.jpg" target="_blank"><img src="http://www.eeworld.com.cn/uploadfile/FPGA/uploadfile/200909/20090901104942378.jpg" alt="" /></a></p>
<p>　　1．1 I P核设计</p>
<p>　　为了在低成本情况下完成预定功能，选择了Cyclone FPGA系列器件中的EP1C6。EP1C6无论从逻辑资源还是存储器均能满足设计要求。在本系统中，我们设计或选用了如下主要的IP核。</p>
<p jquery1261318784846="38">　　1．1．1 UART带Avalon接口的通用异步接收器／发送器。UART内核执行RS-232协议，它为FPGA上的<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_01.html" target="_blank" jquery1261318784846="37"><font color="#0033cc">嵌入式</font></a>系统和外部设备提供了串行字符流的通信方式。带Avalon接口的JTAG-UART内核还提供Nios CPU系统到PC机的连接通路，通过JTAG-UART在PC机上调试NiosCPU所需要的程序，并通过监控程序对整个系统的运行进行控制。</p>
<p>　　1．1．2 GPIO。并行输入／输出内核。它提供Avalon从控制器端口到通用I／O口间的映射接口。该IP核是常规的外设控制接口。通过GPIO，对内控制SOPC系统中的其他部分，对外充当并行I／O接口，读取开关量，对LED、LCD等外设进行控制。</p>
<p>　　1．1．3 SDRAM 该IP核是外部存储器SDRAM的控制接口。通过它完成SDRAM的时序控制。软件设计中， SDRAM的时序控制对用户是完全透明的。</p>
<p>　　1．1．4 EPCS。带Avalon接口的EPCS设备控制器内核。该IP核允许Nios II系统访问EPCS串行配置芯片，该芯片主要用于存储程序代码或一些非易失性数据。</p>
<p>　　1．1．5三态总线桥。该IP核是Avalon和Avalon-TriBUS总线以及Avalon和Wishbone总线的桥接控制器，用于连接两种不同总线。考虑有些外设需要自行开发I2CIP核，这些外设不能直接连到Avalon总线上，需要通过桥接控制器。</p>
<p>　　1．2 检测和执行模块</p>
<p>　　由于远程测控系统设计的目的不同，该模块选用的IP核也不完全相同。SOPC Builder自带的IP库中并不包含I2C配置接口模块，该模块需要根据配制芯片的寄存器特点和功能进行专门设计，并以I2C核的形式通过SOPCBuilder连接到系统的Avalon总线上。</p>
<p>　　1．3 传输接口模块</p>
<p>　　本系统有三种数据传输方式：串口、USB接口和以太网接口。串口、USB接口通过UART接Avalon总线。以太网接口芯片选用了SMSC公司的LAN91c11 1芯片，该芯片内部集成了以太网介质访问(MAC)及物理层收发器(PHY)，支持10／1OOM全双工传输模式、自动协商等功能。LAN91C111芯片通过FPGA内的适配器模块连接到EP1C6内部的Avalon总线上，从而实现系统接入Internet。</p>
<p>　　<strong>2 远程测控系统的软件体系</strong></p>
<p jquery1261318784846="40">　　本系统有两大功能：数据的远程采集及传送。考虑到使用互联网进行远程数据传输的复杂性，在设计中使用<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_01.html" target="_blank" jquery1261318784846="39"><font color="#0033cc">嵌入式</font></a>操作系统和TCP／IP协议栈是必然选择。</p>
<p jquery1261318784846="42">　　软件系统体系结构如图2所示。主要包括<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_01.html" target="_blank" jquery1261318784846="41"><font color="#0033cc">嵌入式</font></a>操作系统的移植；网络协议栈的实现；应用级代码编写等部分。为了方便用户编程，Nios II IDE提供了设备驱动程序，即硬件抽象层(HAL)系统库。HAL应用程序接口(API)与ANSI C标准库综合在一起，可以使用类似C语言的库函数来访问硬件设备或文件，如printf()、fopen()等，而无须关心底层硬件的实现细节。</p>
<p align="center"><a href="http://www.eeworld.com.cn/uploadfile/FPGA/uploadfile/200909/20090901104943507.jpg" target="_blank"><img src="http://www.eeworld.com.cn/uploadfile/FPGA/uploadfile/200909/20090901104943507.jpg" alt="" /></a></p>
<p>　　2．1 移植&mu;C／OS-II和LWIP</p>
<p jquery1261318784846="44">　　&mu;C／OS-II是一种可移植、可固化、占先式多任务实时操作系统内核。其规模较小、实时性和可靠性较高，Nios II集成开发环境(IDE)对&mu; C／OS-II具有良好的支持，故&mu;C／OS-II是<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_01.html" target="_blank" jquery1261318784846="43"><font color="#0033cc">嵌入式</font></a>操作系统的首选。它通过为每个任务分配单独的任务堆栈来保存任务工作环境，提供任务管理和调度服务。</p>
<p jquery1261318784846="46">　　轻量级网络协议(Lightweight IP，LWIP)是TCP／IP协议栈的一种实现，它是一种专门针对<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_01.html" target="_blank" jquery1261318784846="45"><font color="#0033cc">嵌入式</font></a>系统应用而设计的网络通信协议，由于LWIP实现的关键在于削减代码大小和内存消耗，但可以完成传统的TCP／IP协议的大部分功能，通常只需要大约40K的ROM和几十K的RAM即可运行，在网络协议栈初始化后，使用标准套接字API创建新任务访问网络协议栈。</p>
<p>　　2．2 通信服务器</p>
<p>　　本任务通过sys_thread_new()函数创建，作为服务器监听约定的端口，等待远程主机的连接，提取远程主机的命令，通过消息队列将所获得的命令发送到测控任务。LWIP提供了标准的Berkeley套接字编程界面，这个界面提供了三种类型，这里使用了流式套接字，这是一个面向连接、可靠的数据传输服务，数据无差错、无重复地发送，按发送顺序接收。通常服务器接收到并发服务请求后，要激活一个新进程来处理这个客户请求。
<script type="text/javascript">
function ImgZoom(Id)//重新设置图片大小 防止撑破表格
{
var w = $(Id).width;
var m = 650;
if(w < m){return;}
else{
var h = $(Id).height;
$(Id).height = parseInt(h*m/w);
$(Id).width = m;
}
}
window.onload = function()
{
var Imgs = $("content").getElementsByTagName("img");
var i=0;
for(;i<Imgs.length;i++)
{
ImgZoom(Imgs[i]);
}
}
       </script>
　<strong>3 远程测控系统的实现</strong></p>
<p>　　3．1 系统初始化</p>
<p>　　系统初始化是指系统上电复位后到运行main()函数前，初始化硬件，构建应用程序运行环境的过程。如图3所示，Nios II的HAL程序库为用户提供了这段代码，代码的入口标号是&quot;reset&quot;。</p>
<p align="center"><a href="http://www.eeworld.com.cn/uploadfile/FPGA/uploadfile/200909/20090901104943537.jpg" target="_blank"><img src="http://www.eeworld.com.cn/uploadfile/FPGA/uploadfile/200909/20090901104943537.jpg" alt="" /></a></p>
<p>　　程序先对CPU进行初始化，其功能包括初始化指令和数据Cache，设置堆栈指针(stack Pointer)等，然后调用&quot;alt main()&quot;函数。</p>
<p>　　alt main()函数对CPU及外设初始化，其功能包括调用alt os int()函数初始化OS，默认情况下完成对&mu;C／OS-II初始化，调用alt_sys_int()函数初始化系统设备及软件模块等，然后调用&quot;main()&quot;函数。</p>
<p>　　3．2 主函数main()</p>
<p>　　主函数&quot;main()&quot;负责进行网络监听，响应终端的TCP连接请求。若同时要求能与多个终端建立TCP连接和传输数据，需要为每个终端的网络数据处理都开辟一个新的线程，主函数的流程如图4所示。</p>
<p align="center"><a href="http://www.eeworld.com.cn/uploadfile/FPGA/uploadfile/200909/20090901104943887.jpg" target="_blank"><img src="http://www.eeworld.com.cn/uploadfile/FPGA/uploadfile/200909/20090901104943887.jpg" alt="" /></a></p>
<p>　　服务器为每个客户端都开一个线程专门与之进行socket通信。Socket数据处理线程主要包括三个方面工作：从套接字上接收数据包；解析并存储数据包；打包并发送数据包等。</p>
<p>　　3．3 远程测控实验</p>
<p>　　为验证设计方案，选用瑞士SENSIRION公司生产的传感器SHT75，测控温、湿度，该一体化数字式传感器将敏感元件、信号放大器、模数转换器、数字接口电路集成在同一芯片上，使用I2C IP核可以方便地和处理器连接。实验结果表明，该设计切实可行。</p>
<p>　　<strong>4 结束语</strong></p>
<p jquery1261318817062="36">　　本设计基于SOPC和<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_01.html" target="_blank" jquery1261318817062="35"><font color="#0033cc">嵌入式</font></a>系统技术，实现了远程测控的要求。此设计可应用于各种恶劣环境，稍加改进，也可适用于网络信息家电、家庭安全等方面。随着芯片技术和总线技术的发展，<a class="jt" href="http://www.eeworld.com.cn" rel="http://www.eeworld.com.cn/my/keyad/ad_content_01.html" target="_blank" jquery1261318817062="37"><font color="#0033cc">嵌入式</font></a>远程网络化测控在工业中的应用定会更加广泛。</p>]]></description></item></channel></rss>