`
npjev02v
  • 浏览: 14601 次
社区版块
存档分类
最新评论

Dot NET:嵌入式开发平台(图)

 
阅读更多

Dot NET:嵌入式开发平台(图)
2010年08月11日
  [ 来源:机电论文 | 类别:技术 | 时间:2009-5-18 10:32:12 ] [字体:大中小] 
  最近一次乘飞机旅行时,我与一位同行的软件工程经理谈到了寻找优秀嵌入式开发人员所面临的挑战。她告诉我她拥有一个12名开发人员的开发团队,但其中只有三名精通驱动程序、主板支持包和boot-loader的开发。其余下九人,也都是优秀的应用开发人员,但均缺乏低层代码编写经验。我问她是否听说过Microsoft .NET Micro Framework。 
  Microsoft的.NET Micro Framework与C#语言、加上Microsoft的Visual Studio,为工程师及编程人员的嵌入式系统设计提供了更多的选择余地。由于工程师不必编写boot-loader、驱动程序或其它低级代码,产品设计团队就可以缩短其设计时间。有了.NET Micro Framework,新接触嵌入式系统设计的工程师就可直接编写代码,无需特殊的工具或深入了解处理器及操作系统架构。 
  NET Micro Framework在微软研究院有较深的根源,在那里,计算机科学家们致力于简化较小、低功耗设计开发的研究。他们确信未来的电子设备将使用32位的处理器、电池、网络及新的协议,如Z-Wave及ZigBee等。为了设计更多的网络嵌入式设备,这些开发人员的数量及其工具效率都要大幅度地提高。 
  Microsoft研究团队从零开始,研究出.NET Micro Framework平台以解决这种问题。这种框架并不是某个旧软件或工具的简缩。不象Windows Embedded CE工其它嵌入式操作系统,.NET Micro Framework并不需要存储器管理部件(MMU)。所以开发人员可以在低功耗、低成本的ARM7处理器,及ARM9、Blackfin处理器上使用这种框架。这种框架软件只需要几百kbytes的RAM或Flash/ROM存储容量。通过比较,Windows Embedded CE的托管代码环境需要约10-12 Mbytes的存储容量。依赖于.NET应用编程接口(API)的设备之需要较少的存储容量,降低了产品成本。 
  .NET Micro Framework为应用编程提供了一种C#托管代码环境。C#语言学习、使用都比较容易,比C或C++更能提高编程人员的生产效率。托管代码环境意味着开发人员不必跟踪内在覆写或错误指向的指针等问题,这些问题根本就不存在。然后,C#代码中的垃圾回收以非确定的方式进行,开发人员不能创建实时的应用在.NET Micro Framework中运行。 
  Microsoft将.NET Micro Framework集成到其Visual Studio 2005包中,所以入熟悉该软件的编程人员可以迅速地开始一个项目。在2007年2月,Microsoft发布了.NET Micro Framework的第二版,适于基本的嵌入应用开发。Digi International、Freescale、Embedded Fusion及其它企业提供了与.NET Micro Framework兼容的硬件,开发人员可以迅速地开始有用的设计。(参见 "Get a Hardware Head Start".) 
  Microsoft最初在其智能个人对象技术(SPOT)数字手表中应用了.NET Micro Framework。这些采用ARM7TDMI处理器的数字手表可通过FM副载波信号接收不断更新的新闻、体育、气候及交通信息。该SPOT数字手表项目对.NET Micro Framework进行了一次实际测试,帮助了Microsoft的研究人员改进框架软件。 
  NET Micro Framework的架构由几部分组成(图1)。该框架从上至下为开发人员提供多种内容。尽管堆栈有许多层,Microsoft的.NET Micro Framework学习与使用起来还是比较容易的。堆栈的顶部是开发人员或用户应用及库。一般来说,嵌入式系统开发人员可编写只能在此级别与框架交互的程序。 
  NET Micro Framework只提供了用于标准台式PC及服务器应用的较大Microsoft的.NET Framework中的部分特性。但是这部分特性可实施最适合于嵌入式设备的功能。这种方法允许开发人员在可能的情况下使用现有的代码,不必编写大量的的嵌入式.NET Micro Framework代码。 
  类库层通常简称为库,包括.NET及Windows Presentation Foundation (WPF)库。包含在.NET Micro Framework中的这种类库提供了面向对象的可重用类收集,这些类可用来开发嵌入式应用。C#库还包括加密、图形、访问SPI与I2C通信端口的能力。 
  NET Micro Framework内的通用语言运行时(CLR)提供了所有应用程序需要的运行时环境。CLR可管理内存、线程、代码执行、垃圾及异常处理、以及其它服务等。据Microsoft介绍,CLR每秒可执行约15,000次调用,以27.6MHz的时钟频率在为ARM7处理器编写的代码中管理方法。 
  下一层提供了可控制硬件的程序抽象层(PAL),但在嵌入式系统中不依赖于硬件工作。PAL在托管代码接口与硬件特定的代码间提供了一个明确的中间层。在处理器与外设紧上方的最低层中,框架提供了一个硬件抽象层(HAL)或对兼容操作系统的provision接口。因此,该框架可直接与下层硬件通信,也可作为操作系统的主机,如一个为.NET Micro Framework提供硬件服务及扩展的实时操作系统(RTOS)。这可让一个应用程序在RTOS线程中运行实时任务,而另一个RTOS线程中运行整个.NET Micro Framework。 
  硬件厂商(如Digi和Freescale)提供这种低层驱动器及以C++语言实施的CLR。开发人员用C#编写应用程序代码,并将其代码链接到.NET Micro Framework可启动的运行时环境中。由于该框架提供了完整操作系统(OS)的部分功能,它并不需要一个综合OS来管理一个嵌入式系统。因此,开发人员将.NET MicroFramework本身作为一个可启动的运行时环境。这里,可启动的运行时环境指直接在嵌入式硬件中运行的.NET Micro Framework代码。代码提供了启动支持、中断处理、线程与进程管理、堆积管理及其它操作系统通常提供的支持功能。 
  一个内置的.NET Micro Framework硬件仿真器比其它开发工具提供了更多的优势。一个硬件仿真器允许软件团队立即开始开发代码,而不必等到对原型硬件设计、构建并调试后再进行。用户与厂商可以使用XML来扩展默认的仿真器,这样开发人员无需触动任何硬件,即可创建并调试应用程序。硬件厂商还提供了定制的仿真器,可对硬件、模块或处理器等进行仿真。当然,最令他们欣慰的还是能看到其应用程序在实际的硬件上运行。 
  迅速了解有效的代码 
  Connect ME模块是一个可用.NET Micro Framework进行编程的设备示例。这种嵌入式serial-to-Ethernet模块在一个紧凑的RJ-45接口封装中容纳了一个ARM7TDMI处理器(55MHz),2Mbytes的NOR闪存、8Mbytes的SDRAM,及一个以太网PHY/MAC(图2)。 
  一个基于Express Logic ThreadX嵌入式内核的主操作系统,支持模块中的.NET Micro Framework。该内核包括一个完整的IPv4网络堆栈,可在应用程序代码中作为套接字接口。 
  为.NET Micro Framework编写的应用程序可访问所有这些硬件无关的API,并可访问HAL支持的硬件类。Connect ME模块的HAL支持TCP/IP套接字、RS-232串行通信及通用I/O接口。 
  简单条件下试用 
  开发人员只需要四步骤即可创建并运行一个可读写到通用I/O端口的应用程序。以下的步骤假定在主开发PC和Connect ME模块之间有一个以太网编程连接。多数情况下,开发人员对Connect ME模块应用一个Digi Connect ME Digi JumpStart Kit或类似的基板: 
  步骤2.双击新创建项目中的主模块:Program.cs。在C# Main()函数中,添加以下代码: 
  InputPort MyInput = new 
  InputPort((Cpu.Pin)0,false,InputPort.ResistorMode. Disabled); 
  OutputPort MyOutput = new OutputPort((Cpu.Pin)1,false); 
  在Visual Studio 2005中,InputPort类的联机帮助信息介绍了所有的参数。第一个参数--(Cpu.Pin)0 说明了Connect ME模块上的第一个通用的I/O针脚。由Microsoft实施的第二个参数--false 调用一个杂讯滤波器可平滑输入状态变化的突波。Connect ME模块并不在HAL中使用此参数,并会忽略任何合格的值。最后的参数--InputPort.ResistorMode.Disabled   允许HAL配置输入对三种电阻模式之一进行配置;PullUp、PullDown或Disabled。Connect ME模块也会忽略此值,尽管该代码示例指定为Disabled。 
  constructor OutputPort 类只有两个参数:要使用的GPIO针脚--(Cpu.Pin)1 对该输出针脚的初始状态--false。 
  步骤3.令Connect ME模块读取输入针脚的状态,只要为其指定一个Boolean类型即可。 
  bool InputState = MyInput.Read(); 
  要写到输入中,使用Write() method: 
  MyOutput.Write(true); 
  步骤4.要编译及部署应用,选择点击Start Debugging按扭。主PC通过以太网连接将代码发送到Connect ME模块中的闪存上。然后模块就会开始从SDRAM上运行代码。程序的调试输出结果通过以太网调试连接进入Visual Studio Debug Output窗口中。 
  此例说明了必要工作只是编写、编译、部署及调试一个简单的在一个嵌入式目标上运行.NET Micro Framework及控制GPIO针脚的的应用程序。.NET Micro Framework还提供了一个InterruptPort类,但Connect ME模块的I/O针脚并不支持此类。其它硬件可提供一个编程人员可通过InterruptPort类访问的interrupt-input针脚。 
  类似的类、方法及属性允许开发人员轻松地控制串行I/O端口,并创建套接字服务器与客户端。Visual Studio 2005中的帮助文档描述了如何使用命令,即使没有多少C#经验的人也可在应用中使用该工具。 
  为了更好地理解如何应用.NET Micro Framework,开发人员可从Microsoft网站上下载.NET Micro Framework软件开发工具包(SDK)及评估版的Visual Studio 2005,免费使用其仿真器模型。他们也可购买一个开发工具包,如Digi Connect ME JumpStart kit (商品号DC-ME-MF). 
  参考资料 
  Thompson, Daniel and Colin Miller, Microsofts .NET Micro Framework:Product Positioning and Technology Whitepaper:http://download.microsoft.com/download/ 3/1/9/319f7469-70bd-4e7c-a6cc-e5ad96939af4/NET_Micr o_Framework_Whitepaper_V_1.0.doc 
  Microsofts .NET Micro Framework homepage: msdn.microsoft.com/embedded/netmf 
  .NET Micro Framework SDK download - www.microsoft.com/downloads/details.aspx?familyid= 32f5df20-6c95-4fe8-a76c-0ed56a839ad2&displaylang=en
  Trial versions of Visual Studio 2005 (The .NET Micro Framework requires the Standard, Professional, or Team version and will not work with Visual Studio Express.)www.microsoft.com/emea/msdn/visualstudio/ enxu/getthetrials/ 
  Microsoft .NET Micro Framework 合作伙伴列表: 
  msdn2.microsoft.com/en-us/embedded/bb267307.aspx 
  Digi Connect ME:www.digiembedded.com 
  作者简介 
  John Leier是Digi International公司嵌入式软件部门的产品经理。他有15年以上的软件工程经验,包括编程数据采集及使用C、Visual Basic、Delphi、及C#等语言控制系统等。若要了解详细信息,请与Digi International联系:11001 Bren Road East, Minnetonka, MN 55343; (877) 912-3444; www.digi.com. 
  作者:John Leier, Digi Int 
  来源:[http://www.jdzj.com]机电之家.机电行业电子商务平台!
分享到:
评论

相关推荐

    嵌入式开发之lcd汉字取模工具

    在嵌入式开发领域,LCD(Liquid Crystal Display)汉字取模工具是一个重要的辅助软件,它主要用于生成汉字在LCD显示屏上所需的像素数据。本篇将详细解释这个工具的工作原理、应用场景及其实现方法。 首先,汉字取模...

    Dot NET Compact Framework Kick Start 2003

    3. **开发工具**:可能涉及到Visual Studio .NET的嵌入式开发工具,如Device Emulator、Smart Device Project模板等。 4. **编程语言**:讲解C#或Visual Basic .NET在.NET Compact Framework中的应用,包括语法、...

    Dot3kPlugins:Pimoroni Dot3k 插件

    Pimoroni Dot3k是一款基于128x32像素的图形LCD屏幕,通常用于嵌入式项目或小型控制界面。这款显示器具有良好的可编程性,可以显示自定义的文本、图形和动画。 在描述中提到的“需要来自的Pimoroni master dot3k文件...

    轻量级的Dot Net编译器支持C#和VB.NET v1.0

    标题和描述中提到的"轻量级的Dot Net编译器支持C#和VB.NET v1.0"指的是一个早期版本的.NET开发工具,它专为C#和Visual Basic .NET语言提供了轻量级的编译功能。这个编译器可能是为了在资源有限或者对性能有特殊要求...

    配书代码-Dot Net compactframework programming with c#

    这本书的源代码是配合书本内容的实践示例,旨在帮助读者深入理解如何在资源受限的移动设备或嵌入式系统上开发.NET应用。 .NET Compact Framework是微软为小型设备如掌上电脑、智能电话和平板电脑等设计的一个精简版...

    dot04-pic.rar_Dot.

    标题中的"dot04-pic.rar_Dot."似乎指的是一个压缩包文件,可能包含了与Dot相关的图像或数据。描述中提到的"dot 04 pic16fxxx test caracter"提到了"dot 04",这可能是某个版本号或者序列号,而"pic16fxxx"通常是指...

    ARM嵌入式教学开发实验装置.doc

    - **第1章 嵌入式系统开发与应用概述**:介绍了嵌入式系统的概念、发展历史、应用领域等基础知识,以及基于ARM架构的嵌入式开发环境概述,还涉及到了常用的ARM开发工具介绍及如何进行嵌入式系统的开发与应用。...

    计算机软件毕业设计_DOT.NET源码+SQL_Sever2005_C语言教学网站及网上考试系统的设计与实现.rar

    4. C语言教学:C语言是一门基础且重要的编程语言,被广泛用于系统编程、嵌入式开发等领域。教学网站可能包含C语言的语法讲解、实例演示、习题练习等模块,帮助学生学习和掌握C语言。 5. 网上考试系统:这部分涉及到...

    02.dot_font

    点阵字体技术是一种在有限...这为开发嵌入式系统的文本界面提供了一种灵活且实用的解决方案,特别是那些资源有限但需要显示多种语言的设备。通过深入理解和应用这些知识点,开发者能够创建出更人性化、易读的用户界面。

    dot_matrix_8x22_v2.rar_Dot.

    标题中的"dot_matrix_8x22_v2.rar_Dot"指的是一个关于8x22点阵显示屏的项目,版本为v2,可能是通过压缩软件RAR打包的资源。...这个项目对于学习单片机控制、点阵显示技术和基础嵌入式系统开发是非常有价值的实践案例。

    key_dis.rar_KEY/DIS_c51 键盘_keydis_单片机DIS_DOT

    标题中的“key_dis.rar_KEY/DIS_c51 键盘_keydis_单片机DIS_DOT”揭示了这个压缩包文件的主要内容,它涉及到C51单片机的键盘(Key DIS)设计,其中包含了关键的编程工具“keydis”以及显示(DOT)功能。这个项目可能...

    dot2_FPGAverilog_leddotmatrix_verilog_Xilinx_Dot._

    标题 "dot2_FPGAverilog_leddotmatrix_verilog_Xilinx_Dot._" 暗示我们正在讨论一个使用Verilog编程语言实现的项目,该项目是针对FPGA(Field-Programmable Gate Array)设计的。这个设计的核心功能是在LED点阵...

    Key_Matrix.zip_Dot.

    标题中的"Key_Matrix.zip_Dot."暗示了这是一个与键盘矩阵(Key Matrix)和点阵...这个项目涉及的技能和知识面较广,涵盖了嵌入式系统设计、微控制器编程、GUI开发等多个领域,对于学习和提升嵌入式开发能力非常有帮助。

    1914_rgb_dot_matrix_scrolling_text_display_v1.0.0_Dot.

    标题 "1914_rgb_dot_matrix_scrolling_text_display_v1.0.0_Dot" 提供的信息表明,这是一个关于RGB点阵滚动文本显示的项目,版本号为1.0.0。这个项目可能是针对Arduino UNO开发的一个硬件或软件解决方案,用于在RGB...

    [原版计算机类书籍]Sams.Microsoft.Dot.NET.Compact.Framework.Kick.Start.rar

    2. **开发环境**:包括Visual Studio的嵌入式开发工具,如Visual Studio .NET或Visual Studio Express,以及如何设置和配置这些工具来创建针对.NET Compact Framework的应用程序。 3. **C#和VB.NET在移动开发中的...

    关于嵌入式的就业方向.pdf

    1. Dot Net架构与程序设计:微软提供的企业级开发框架。 2. 软件测试技术:确保软件质量与稳定性。 3. 软件配置管理:版本控制和团队协作的关键工具。 4. 数据仓库技术、构件与中间件技术、设计模式:更高层次的企业...

    riscv32i-gnu-toolchain-dot.zip

    标题中的“riscv32i-gnu-toolchain-dot.zip”提到了一个针对RISC-V架构的32位版本的GNU工具链,它被扩展以支持特定的“dot”指令。这个工具链是为Intel MAX10 T-core FPGA设计的RISC-V核心优化的,目的是在硬件级别...

    dot3k-c:Pimoroni的Display-O-Tron 3000的交流电库

    在电子制作和嵌入式系统开发领域,Raspberry Pi凭借其强大的性能和丰富的扩展性,深受爱好者们的喜爱。而在众多Raspberry Pi的扩展板中,Pimoroni的Display-O-Tron 3000(简称DOT 3000)是一款专为Pi设计的LCD模块,...

    Dot_matrix_font:基于QtC ++的单片机点阵取字模软件

    Qt是一个跨平台的应用程序开发框架,用C++编写,广泛应用于桌面、移动和嵌入式设备。它提供了丰富的图形用户界面(GUI)组件和功能,使得开发者可以轻松构建美观且高效的界面。在`Dot_matrix_font`项目中,Qt的这些...

Global site tag (gtag.js) - Google Analytics