WinCE系统内核中使用了一个调试串口来输出调试信息,用来显示WinCE系统启动时的相关信息。英创提供的系列ARM9嵌入式主板EM9000、EM9161、EM9160、EM9260、EM9360,均引出了专用的调试串口,具体的接口位置引脚请参看各自的数据手册。由于该调试串口已被系统占用,所以应用程序不能使用该串口。
调试串口的通讯配置参数为:对于EM9000标准板卡,调试串口的配置为:波特率为38400bps,8位数据位,无校验,1位停止位。其余的包括EM9161、EM9160、EM9260、EM9360板卡,其配置为波特率为115200bps,8位数据位,无校验,1位停止位。
在PC机端利用串口显示监测信息的工具很多,一般比较常用的是直接利用Windows操作系统中提供的“超级终端”程序,运行“开始”-“程序”-“附件”-“通讯”-“超级终端”,建立一个基于串口通讯的连接。
如接EM9000调试串口,配置参数如下:
除此之外,还可以利用串口调试工具软件来监测,如:串口调试助手.exe、SSCOM32.exe程序等。
调试串口和PC连接好后,ARM9板卡一上电启动,超级终端将显示很多系统调试信息, 系统启动一旦成功,将显示该系统内核的版本信息以及网络适配器的配置相关信息如下:
EM9X60 built at Jun 15 2009 11:58:45 Adaptation performed by Emtronix (c) AdapterName: EMACB1 …….
其中的版本信息主要显示了该WinCE内核生成的时间,如果启动信息始终显示不到这一步,表明内核启动失败,出现这种情况请和英创公司联系,通常需要重新更新内核。
英创的ARM9嵌入式主板有两种运行模式:调试模式和自动运行模式,用户也可以通过超级终端显示的信息来判断ARM9嵌入式主板的运行模式。显示打开的文件名为:FileName:\NandFlash\dbginfo.txt 表明系统处于调试模式:
显示打开的文件名为:FileName:\NandFlash\ userinfo.txt 表明系统处于自动运行模式:
对不支持Windows图形窗口的ARM9板卡,如EM9160、EM9260等,在应用程序开发中可调用printf(…)显示一些运行的提示信息,该信息将被系统自动转到调试串口输出。注意若应用程序是在telnet下启动,printf(…)输出的提示信息将显示在telnet窗口。
参照我们提供的《使用必读》对EVC进行了安装、配置,如果还遇到EVC连接失败的情况,请按照以下步骤进行检查:
1、确认ARM9工控主板是否是处于调试状态,检查评估底板上的DBG跳线是否短接。
2、正确编辑dbginfo.txt,并确认该文件已COPY到ARM9主板的NandFlash中。
3、检查ARM9工控主板的网络是否接好,最简单的方法就是用开发主机“ping”ARM9嵌入式主板的IP,需要注意的是ARM9工控主板的IP和配置文件dbgnfo.txt中的LocalIP应该是一致的。
4、确认EVC上成功安装了ARM9工控主板对应的SDK。
5、检查EVC环境中的平台管理器配置的下载、调试所用的端口和服务是否正确。可以对照《使用必读》检查这部分的内容。
6、上述几步确认无误,还是无法连通,建议分别重新启动ARM9嵌入式主板和开发主机。
利用《使用必读》中提供的方法进行EVC的连接,优点就是用户操作起来简单,只需要正确配置一次EVC的平台管理器参数就可以了。这是由于我们提供的ARM9嵌入式主板在调试模式下,会自动运行平台管理程序cemgrc.exe /s /t:tcpipc.dll /q /d: IP:Port ,其中的IP和Port为开发主机的IP和端口,这两个参数是通过配置文件dbginfo.txt获取。这种方法的缺点就是存在EVC连接有时较慢,有时还连接不上的现象。EVC连接采用的是TCP/IP连接,在使用时就存在有连接超时的问题,这和工具本身有一定的关系。为了使用效率,对有经验的客户,可以通过telnet手动运行cemgrc.exe来支持EVC的连接。操作的步骤如下:
1、重新配置EVC的平台管理器的参数,主要是不需要再指定端口,即Fixed port不需要选中。如下图所示:
2、运行telnet程序连接英创WinCE主板。在开发主机上运行“C:\命令提示符”,再运行 telnet 192.168.201.175 就可以直接连接到英创主板了。
3、在EVC下启动远程调试工具,将弹出如下画面:其中Windows中的三个文件tcpipc.dll cemgrc.exe cetlstub.dll已经包含ARM9主板的内核中,用户只需将其中的cmd line用鼠标选中,并选择复制,然后点击OK。
4、将窗口切换到telnet连接的窗口,将复制的cmd line通过鼠标右键粘贴到该窗口的命令行提示符下:
5、然后按回车键启动该程序,EVC将与英创主板快速链接成功。
若按显示接口划分,英创的工控主板分成两类,一类带有彩色LCD接口(信号电平为TTL);一类则以支持低成本的单色LCD为特色,其对应的产品型号如下表所示:
EM9000
EM9161
EM9160
EM9260
EM9360
LCD接口
显示风格
应用领域
TFT彩色LCD通常以显示尺寸和显示分辨率及显示接口为主要技术特征,英创相关的工控主板产品理论上可以和任意一款LCD屏相连,但由于每款LCD的物理接口多半不一样,要实现可靠连接,通常都挺费周折的。为了方便客户产品开发,我们针对市面上供货相对稳定、性价比较好的几款有代表性的TFT LCD设计了专门的连接适配板,使英创工控主板能方便地直接连接到各款LCD上。这些LCD如下表所示:
显示尺寸
显示分辨率
接口形式
使用简要说明
5.0”
640×480
5.6”
8.0”
800×600
10.4”
12.0”
1024×768
低成本的单色LCD的主要特色是内置LCD控制器,通过并行接口与工控主板相连。显示分辨率是它们的主要技术指标,批量价格从几十块人民币到两三百这个范围。英创的相关工控主板产品均配有与这些LCD直接相连的接口,使用非常方便。目前市面上流行的LCD如下表所示:
内置控制器
使用特点
128×64
KS0108
240×128
T6963C
320×240
R8835
122×32
SED1520
值得一提的是,与通常的WinCE主板不同,英创EM9X60这三款产品并不一定需要配接LCD才能工作。事实上,它们大多数的应用是作为无显示的网络化智能设备的核心平台,如电力系统的集抄单元,无线基站的监控设备、野外数据采集站等等。
客户可根据自身的情况选择以下技术路线,实现相应的AD扩展:
1、利用英创主板上的GPIO,作为SPI或I2C接口信号,与应用底板上扩展的、带相应接口的AD芯片相连。软件驱动方面,英创公司为客户提供有GPIO仿真的SPI和I2C接口操作的API函数,可非常方便实现AD数据的转换和读取。本方法的主要优点是客户可以最大限度的控制产品的成本,对批量产品意义重大;主要不足是要求客户需设计自己的应用扩展底板,即客户必须要做一定的硬件工作。
2、对使用EM9160和EM9260的客户,可考虑利用板上自带的两路AD实现数据采集。这两路AD尽管只有10-bit分辨率,但信噪比做得很好,可很容易实现1%的系统精度。对需要多路AD的应用,可考虑在前端加多路转换芯片。本方法的主要优点是简单易行,如监测电源电压、温度监测等,不足之处主要是只有两种型号的产品才支持板载AD功能。
3、通过英创工控主板的ISA扩展总线扩展所需的AD单元,对不希望做太多硬件工作的客户,还可选用英创公司的数采扩展模块。英创公司提供2款数据采集扩展单元,一种为ETA197,是以MAX197为核心的AD单元,主要特点的是8路模拟通道,支持多种输入量程;另一种扩展单元ETA102包括10路AD通道、两路DA通道。在使用这两款AD模块时需注意它们都是简单的AD单元,并没有带任何信号调理,另外由于主要用于客户评估,若客户在应用中需要更高的精度,则需要为AD提供高信噪比的电源。
4、直接购买成熟的数据采集工业ADAM模块,通过RS485与英创工控主板相连,来实现数据采集功能。采用该方案的主要优点是产品能迅速市场化并投入使用,同时由于ADAM带有前端信号调理和保护电路,使新产品的现场维护大大减少,有助于树立良好的产品形象,待产品大量使用了,再来考虑降低成本的技术方案也不迟;该方案的不足就是客户前期所花银两可能多些,但却是以金钱换时间和市场的实实在在的方案,所以建议客户多多考虑。
综上所述,在英创主板基础上扩展数据采集功能的方法是多样的,并不一定只能配置英创的AD扩展模块,如ETA102等,而是根据自身需要灵活决定。
英创的工控主板产品均预装了Windows CE5.0操作系统,可支持多种开发工具。以下简单介绍主要的几种开发工具:
1、Embedded VC4.0 + SP4
简称EVC,是微软为嵌入式系统提供的一套完整的C/C++集成开发环境,它在使用的界面上与广泛应用于工控领域的VC6.0具有高度的兼容性,使过去从事工控开发的工程师能非常容易地转入嵌入式系统的开发。EVC的另一个特点是它是完全免费的,用户可从微软网站:http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=1dacdb3d-50d1-41b2-a107-fa75ae960856直接下载获得。采用EVC加上英创的ARM9工控主板进行开发,可以说是目前快速进入高端嵌入式系统开发门槛最低的方法之一。采用C/C++作为开发工具的另一个直接的优点是它相对其他开发语言,具有最高执行效率,这对嵌入式系统尤为重要。事实上在嵌入式领域,有60% - 70%的工程师采用C/C++作为他们的主要开发工具。鉴于上述的原因,我们公司也把对EVC的技术支持作为我们客户技术支持的重点,所有的程序范例、应用程序框架都有C/C++代码。
2、Visual Studio 2005 / VC
对熟悉VS2005的客户,也可用VS2005的VC代替EVC,其使用方法和EVC几乎完全一致。英创公司提供的EVC范例代码也可直接用在VS2005/VC中。
3、Sourcery G++
Sourcery G++是codesourcery公司开发的,可以在Windows开发主机中直接开发Linux应用程序的优秀开发工具,其开发界面、使用方法与eVC、VS2005很相似,客户无需关心Linux环境的搭建,可以直接使用该工具开发嵌入式Linux应用程序,并下载到英创工控主板中调试运行。关于Sourcery G++的更多信息可参阅公司官网www.codesourcery.com以及英利网站www.emlinix.com。
4、Visual Studio 2005 / C#
简称C#,其主要优点是C#使得C++程序员可以高效的开发程序,而不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#,应用起来相对于C++而言相对方便易用,特别是在应用功能构建和图形开发方面,有独到的优势;但C#在底层调用方面,却不如C++功能强大和灵活。正因为这种易用性,使得很多客户原因选用C#作为开发语言工具。我们在C#方面也做了一些工作,选定了EM9000平台编写了一些C#的应用例程供客户参考(选用其它型号主板的客户虽然不能直接使用,但也可参考),包括总线控制、SQL数据库、串口通讯等等,另外我们还将陆续推出一些COM组件调用的例程来丰富客户的应用手段。由于在工业控制领域,对于底层的调用也是比较多的,而C#在处理底层应用方面比起C++有其劣势,所以我们支持的重点还是在C++方面,对于C#的技术支持可能没有C++那么全面和完善。
5、LabView
一种图形化的编程工具,英创公司没有提供直接的技术支持。但不少仪器开发方面的客户在使用这个工具开发应用程序,并有成功的案例。为了适应未来各种跨平台的开发工具,我们现在正在把英创ARM9工控主板的低层驱动接口封装成标准的COM组件,以源码的形式提供给客户,这样如果基本操作就满足客户需求,应用程序可直接调用这些COM组件的接口方法函数;另一方面客户还可根据自身需要,扩充COM组件的功能,而让LabView更多的发挥在人机界面操作方面的优势。
6、.net VB
有部分客户在使用该工具开发应用程序,英创公司也是没有提供直接的技术支持,但英创提供的COM组件同样可以应用于VB环境。
经典的IBM PC概念的精髓是它的开放的扩展接口,其具体的体现就是PC的ISA扩展总线,以及以ISA总线为核心而形成标准的PC104总线。经过20年的应用,ISA扩展总线已成为PC在工业控制领域的事实上的扩展标准。标准的ISA总线有96条信号线,PC104总线则有104条信号线。英创公司的精简ISA总线是在ISA总线的基础上,保留了最常用的总线读写功能,大大的减少的总线的信号数量,使之能包含在英创名片尺寸的嵌入式主板的管脚中。
精简ISA总线的主要特点包括:
1、保持了与标准ISA总线相同的时序关系;
2、用片选信号代替ISA总线的高位地址;
3、对最常用的端口读写功能,只需要20条信号线(包括电源和地)
基于精简ISA总线的实际扩展电路接口与标准ISA总线或PC104总线的扩展方法是完全一样的,客户可参考网站中对精简ISA总线应用方案介绍。
GPRS的标准应用模式是作为客户端模式,通过拨号“*99***1#”到中国移动的GPRS节点服务器,从而实现拨号上网的功能。在WinCE操作系统中提供有RAS(Remote Access Service),即“远程访问服务”,它允许远程拨号连接,一旦建立了连接,就可以像局域网中的计算机一样进行通讯。
我们为客户提供的应用光盘中,通常包含了3个关于GPRS应用的示例程序:
1、RASEntry,作用是在系统中自动建立一个名称为“GPRS”的拨号连接,就像在PC上建立一个宽带拨号连接一样。RASEntry程序主要是用于设置作为调制解调器的设备属性(端口设置、拨号选项)以及指定电话号码和用户验证参数等。RASEnry只需运行一次即可,因为拨号连接记录自动保存在系统注册表中,掉电不会丢失。
2、RASDial,一个GPRS异步拨号的例子,运行RASDial,可以让系统连接到GPRS网络,就像运行(双击)在PC机上建立的宽带连接拨号上网一样。
3、GPRS232,是基于GPRS网络进行TCP通讯的例子,GPRS232程序以客户端模式与远端服务器进行TCP通讯,将从远端服务器收到的数据通过工控主板的串口转发出去,同时将从串口收到的数据通过GPRS网络发送到远端的服务器,以实现串口和GPRS的数据透明传输。
客户第一次在英创嵌入式主板上测试GPRS应用程序时,应该按以下步骤进行:
1、运行RASEnry程序建立GPRS拨号连接。
2、运行RASDial进行GPRS拨号上网测试。
3、测试GPRS232串口——GPRS数据透传程序。
客户在测试上述3个DEMO程序或作GPRS相关的应用时,经常会遇到的问题:
1、运行RASDial不能拨号上网?
a、确认是否运行了RASEnry建立拨号连接记录,成功运行了RASEnry后,在工控主板的“开始菜单->设置->网络和拨号连接”中应该看到GPRS的拨号连接图标。
b、GPRS模块是否正常上电(可观察GPRS模块的Power指示灯)。
c、是否插入了正常的SIM卡(可观察GPRS模块的Sync指示灯)。
d、SIM卡是否开通了GPRS业务。
2、通过RASDial能够拨号上网,但应用程序不能与远端服务器建立TCP连接?
出现这种现象通常是TCP通讯路由出错:
a、要让网络数据通过GPRS路由,加载GPRS模块的工控主板网关必须设置为空,可通过配置userinfo.txt和dbginfo.txt的DefaultGateway项,应该将DefaultGateway设置为'0.0.0.0'。
b、如果用于测试的远端服务器PC处理内网中,应该在服务器PC连接到公网的路由器上做端口映射设置。
关于GPRS路由设置和相关原理,可以参考《工控远程智能终端的双网络选路方案》一文。
英创ARM9系列嵌入式主板采用了正版Windows CE操作系统,推荐客户使用eVC进行开发。eVC的开发界面保持了和VC的一致性,可以方便快捷地进行嵌入式应用开发。
很多新客户反映按照手册安装完eVC后,开发主机会弹出“Virtual PC不稳定”的错误提示,导致eVC不能和目标嵌入式工控主板正常连接。这是因为Windows XP的缺省设置限制造成的。改变Windows XP设置的步骤如下:
1、桌面『我的电脑』右键——『属性』——『高级』——在『启动和故障恢复』里单击『设置』,在弹出的对话框里点『编辑』按钮。
2、在弹出的boot设置写字板中,将您的设置修改为(仅修改红色字体部分):
[boot loader] timeout=1 default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(3)\WINDOWS='Microsoft Windows XP Home Edition' /execute /fastdetect
注意:其余位置不可修改,以免导致其它错误。
保存后,退出,重启系统。即可解决此问题。
在嵌入式应用系统中,用户常常希望WinCE系统启动后能隐藏WinCE桌面;由于要考虑安装的方向,用户有可能旋转桌面,可以通过更改注册表实现这两个功能。
方法是:用远程Remote Register Edite工具修改注册表:[HKEY_LOCAL_MACHINE\init]
'Launch50'='explorer.exe',去掉explorer.exe即可。
在WinCE 5.0嵌入式操作系统环境下,经过实验证明使用FAT16格式存储数据比使用FAT32格式存储数据更安全可靠。因此,我们建议,在使用移动存储设备(包括U盘和SD卡等)时,最好使用FAT16格式。我们给出了使用DiskGenius软件(可以在http://www.skycn.com/soft/3506.html下载)把任意容量的移动存储设备(包括大于4GB的存储设备)格式化成FAT16格式的方法,以弥补在PC机上只能格式化成FAT32的缺陷。
1、启动DiskGenius,如图1所示,选择RD1,在<空闲> 处按右键,选择 分区->建立分区,出现图2所示对话框。
2、如图2 所示,选择分区类型和分区大小。
3、如图3所示,按F8键,保存分区表。在<未格式化>位置处,按右键,选择<格式化当前分区>。至此,就把8GB的U盘格式化为4GB的FAT16格式的U盘,就可以在WinCE下安全使用。
在EVC开发环境下,可以很方便地利用MFC对话框资源来编辑界面,客户常常会遇到这样的问题,编译好的程序在ARM9板卡上运行时,中文显示为乱码。这是由于在编辑对话框时没有将语言设置为中文-“Chinese(P.R.C)”,设置的方法如下:
1、在Dialog资源上按右键,选择Properties,如图1所示。
2、在Dialog Properties对话的Language选项选择Chinese(P.R.C),如图2所示。