⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ——利用coldfire uclinux实现数据采集和传输.htm

📁 网上收集的关于嵌入式开发的文档。拿来共享!
💻 HTM
📖 第 1 页 / 共 2 页
字号:
            <P style="TEXT-INDENT: 30px">MCF5307_WR_CS_CSCR5(imm,0x3d40); 
            采用8位的读方式</P>
            <P style="TEXT-INDENT: 30px">MCF5307_WR_CS_CSMR5(imm,0x01FF0001); 
            空间大小为1M</P>
            <P 
            style="TEXT-INDENT: 30px">将SPM控制的引脚和MCF5307的并口引脚相连,这产对SPM的控制就只需设置并口的相应位了。</P>
            <P style="TEXT-INDENT: 0px"><B>3 uClinux下的实时性</B></P>
            <P 
            style="TEXT-INDENT: 30px">uClinux并不是一个实时操作系统(RTOS),如何使用uClinux完成有实时性要求的数据采集是需要考虑的问题。由于应用中只一个实时的任务——从SPM中读取数据,所以采用中断的方式来对数据采集完的信号提供实时响应。下面的代码用来向uClinux注册IRQ7中断处理程序:result=request_irq(ECM_IRQ,ecm_interrupt,0,“ecm”,NULL);</P>
            <P 
            style="TEXT-INDENT: 30px">在中断处理程序中,先关闭中断,因为中断嵌套在这里是没有意义的,还有一个重要的原因是SPM中断信号的低电平持续时间比较长。CPU是利用低电平来标志断信号的,所以CPU可能在SPM的一个中断信号中检测到多次中断。关闭中断后,从SPM的RAM中读取数据。由于SPM和xBoard之间的连接已得到保证,SPM的内部RAM成为uClinux的内存空间的一部分,所以读的工作是很简单的,只是将数据从一个地址读到另外一个地址,读完数据后打开中断。读数据之间发生的中断都会被忽略。读数据块的大小为4096字节,读完所有的数据需要2ms。所以在采集周期低于2ms的情况下,系统无法正常工作。不过这个指标低于应用的要求。<BR><IMG 
            height=323 hspace=35 
            src="——利用ColdFire uClinux实现数据采集和传输.files/10b.gif" width=486 
            vspace=10 border=0><BR><B>4 数据的临时存放</B></P>
            <P 
            style="TEXT-INDENT: 30px">xBoard上并没有大的存储设备,所以uClinux采集的数据必须及时地传送出去。以太网上通过交换机连接着多个设备,在网络繁忙的时候并不能保证数据会被及时地传出去。解决这个问题的方法是开辟一个缓冲区,将暂时无法传出去的数据放在缓冲区中。</P>
            <P 
            style="TEXT-INDENT: 30px">由于没有MMU的支持,uClinux不能提供内存保护机制,进程可以随意读取任何内存地址。这样,在带来方便的同时也增加了一些麻烦。方便的一面表现在可以在进程中开辟缓冲区,在内核中用同样的地址使用缓冲区;不利的一方面表现在开辟动态内存必须十分小心,不能和其它进程发生重叠。</P>
            <P 
            style="TEXT-INDENT: 30px">在进程中开辟了50个数据缓冲片,这些缓冲片通过三个双向链表维持形成缓冲区。所有的缓冲片被挂在一个称为list的双向链表中,退出进程的时候,应该将这些动态内存释放。同时,将存有有效数据(即尚未被发送出去的数据)的缓冲片放在称为dirty的双向链表中,将可以使用的缓冲片放在称为clean的双向链表中。中断处理程序每次从clean链表中取得一个缓冲片,存入数据后放到dirty链表中;相反,发送进程每次从dirty队列中取一个缓冲片,发送其保存的数据,然后把它放到clean链表中。这样可以在一定程序上为网络速度的稳定提供缓冲。</P>
            <P style="TEXT-INDENT: 0px"><B>5 uClinux上运行任务的分析</B></P>
            <P 
            style="TEXT-INDENT: 30px">在uClinux上运行了三个任务:读取采集数据、通过以太网发送数据、接收和执行来自ICS的命令。其中的读取采集数据任务对实时性有要求,把它用中断处理程序来实现,而其它的两个任务则通过用户进程来实现。通过以太网发送数据的任务和读取采集数据的任务其享一个缓冲区,通过ioclt函数在它们它们传递缓冲区双向链表的地址。所以还需要为SPM注册一个驱动程序,这也是在uClinux操作中比较特别的进程和内核通信的方法。同时,把对SPM的设置和查询等操作也包装在这个驱动程序里同,这些操作都是通过ioctl函数向程提供接口。注册驱动程序的函数是:</P>
            <P 
            style="TEXT-INDENT: 30px">result=register_chrdev(ECM_MAJOR,“ecm”,&amp;ecm_fops);可见,这里把SPM作为一个字符型的设备,由于缓冲区是共享,所以必须提供一个锁相制,使得在某个进程向缓冲片中写数据时,其它的进程不读或写该缓冲片。</P>
            <P 
            style="TEXT-INDENT: 30px">UClinux不仅在信息家电、低端网络设备和工业控制领域中有较广的应用,而且在简单的数据采集和传输方面也有了应用方案。 
            </P>
            <P></P></DIV></TD></TR>
        <TR>
          <TD align=middle height=15>
            <TABLE cellSpacing=0 cellPadding=0 align=center border=0>
              <TBODY>
              <TR>
                <TD>
                  <DIV></DIV></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD align=right height=2>
            <TABLE cellSpacing=0 cellPadding=0 width="80%" border=0>
              <TBODY>
              <TR>
                <TD width=75>【<A href="javascript:doPrint();">打印本稿</A>】</TD>
                <TD width=8></TD>
                <TD width=75>
                  <P>【<A 
                  href="http://www.21ic.com/new_info/news/review.asp?title=利用ColdFire uClinux实现数据采集和传输target=" 
                  _blank?>发表评论</A>】</P></TD>
                <TD width=10></TD>
                <TD width=79>【<A 
                  href="http://www.21ic.com/new_info/news/sendmail.asp?num=利用ColdFire uClinux实现数据采集和传输">推荐</A>】</TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD align=right height=2></TD></TR>
        <TR>
          <TD align=right height=2><A href="javascript:window.close();"><IMG 
            height=20 src="——利用ColdFire uClinux实现数据采集和传输.files/close_c.gif" 
            width=77 border=0 name=Image161></A><FONT 
          color=#ffffff>----</FONT></TD></TR></TBODY></TABLE><BR><BR>
      <TABLE cellSpacing=0 cellPadding=0 width=520 align=center border=0>
        <TBODY>
        <TR>
          <TD vAlign=bottom align=middle width=114 bgColor=#999a76 
            height=1><IMG height=1 
            src="——利用ColdFire uClinux实现数据采集和传输.files/blank.gif" width=1></TD>
          <TD width=466 height=1></TD></TR>
        <TR>
          <TD align=middle width=114 bgColor=#ece8db height=19>相关新闻</TD>
          <TD width=466 height=19></TD></TR>
        <TR bgColor=#999a76>
          <TD colSpan=2 height=1><IMG height=1 
            src="——利用ColdFire uClinux实现数据采集和传输.files/blank.gif" width=1></TD></TR>
        <TR>
          <TD colSpan=2 height=1></TD></TR></TBODY></TABLE>
      <TABLE borderColor=#000000 cellSpacing=0 cellPadding=0 width=520 
      align=center border=0>
        <TBODY>
        <TR>
          <TD vAlign=top>
            <TABLE class=RelatedTable width="100%" border=0>
              <TBODY>
              <TR class=RelatedTr>
                <TD class=RelatedTd>
                  <SCRIPT language=javascript 
                  src="——利用ColdFire uClinux实现数据采集和传输.files/about.htm"></SCRIPT>
                </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR></TD>
    <TD vAlign=top align=middle width=150 bgColor=#ece8db height=2>
      <TABLE cellSpacing=0 cellPadding=1 width="100%" border=0>
        <TBODY>
        <TR>
          <TD bgColor=#000000>
            <TABLE cellSpacing=0 cellPadding=2 width=150 bgColor=#ece8db 
            border=0>
              <TBODY>
              <TR>
                <TD>
                  <META content="Microsoft FrontPage 5.0" name=GENERATOR>
                  <META content=FrontPage.Editor.Document name=ProgId><BR><A 
                  href="http://www.hhcn.com/chinese/cnindex.html" 
                  target=blank>华恒<BR>(ARM,PowerPC,冷火,龙珠)</A><BR><A 
                  href="http://www.embedon.com/" target=blank>远峰</A> <BR><A 
                  href="http://www.21ic.com/custom/jhb/index.htm" 
                  target=blank>复旦金海博</A><BR><A 
                  href="http://www.emdoor.com/index.asp" 
                  target=blank>亿道</A><BR><BR>单片机 <BR><BR><A 
                  href="http://www.hk.renesas.com/" 
                  target=blank>Renesas</A><BR><A 
                  href="http://www.zlgmcu.com/tools/kaifaban.asp" 
                  target=blank>周立功 Philips</A> <BR><A 
                  href="http://www.strong-ic.com/" target=blank>胜创特</A> <BR><A 
                  href="http://www.holtek.com.tw/" target=blank>盛群 Holtek</A> 
                  <BR><A href="http://www.xhl.com.cn/" 
                  target=blank>Cygnal单片机</A><BR><A href="http://www.lierda.com/" 
                  target=blank>利尔达MSP430</A> <BR><BR>接口电路:<BR><BR><A 
                  href="http://www.whjmw.com/" target=blank>金迈威</A> <BR><A 
                  href="http://www.21ic.com/custom/maiwei/mw.htm" 
                  target=blank>迈威</A> <BR><A href="http://www.rs232.net.cn/" 
                  target=blank>瑞赛特</A><BR><BR><BR>存储器<BR><A 
                  href="http://www.huazhoucn.com/" 
                  target=blank>铁电存储器免费样品</A><BR><BR><BR>模拟器件<BR><A 
                  href="http://www.unique-ap.com.cn/" 
                  target=blank>Linear</A><BR><BR><BR>编程器<BR><A 
                  href="http://www.xeltek.com.cn/" 
              target=blank>西尔特编程器</A><BR></TD></TR>
              <TR>
                <TD 
  height=5></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=766 align=center border=0>
  <TBODY>
  <TR>
    <TD vAlign=top colSpan=6></TD></TR>
  <TR>
    <TD vAlign=top colSpan=6 height=10></TD></TR>
  <TR>
    <TD vAlign=top bgColor=#999999 colSpan=6 height=2></TD></TR>
  <TR>
    <TD class=stxt vAlign=center align=middle colSpan=6 
height=6></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=766 align=center border=0>
  <TBODY>
  <TR>
    <TD class=s width=973 height=12></TD></TR>
  <TR>
    <TD class=s width=973 height=20>
      <DIV align=center><FONT face="Arial, Helvetica, sans-serif"><!--start copyright-->
      <DIV align=center><FONT color=black>
      <TABLE cellSpacing=0 cellPadding=0 width=600 align=center border=0>
        <TBODY>
        <TR>
          <TD align=middle width="100%" colSpan=2><BR>Better View:800*600 Best 
            View:1024x768 为了本系统能够更好的为您服务,请使用IE4.0或以上版本浏览器 
            <BR><BR>版权所有(C)21IC中国电子网 电话:010-82357510, 82357511 传真: 010-82357512 
          </TD></TR></TBODY></TABLE><!--start copyright--></FONT></DIV></FONT></DIV></TD></TR></TBODY></TABLE><BR></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -