博文
具有8个RS485的多串口嵌入式单板电脑(2009-05-14 11:05:00)
摘要:
EMUC8485多串口服务器(原型号:ARMSYS2410-MULTIUART)是立宇泰电子自主研发设计的一款高性能、嵌入式多串口终端服务器应用板。它具备8个可独立控制的RS485串行口,在多任务操作系统的控制下,可以满足长距离多负载管理、实时响应大数据量的严苛要求。该产品特别适合作为实现串口终端设备集中管理、实时数据采集的服务器主板,目前已大量应用到金融POS机通讯服务器领域中。 EMUC8485多串口服务器还提供了以太网接口,数字真彩液晶屏接口,键盘接口,SD卡接口,这使它同样适合作为远程WEB服务器,数据采集和监控终端,各种人机界面来使用。 EMUC8485多串口服务器特点是高性能、低功耗、低成本、使用方便、节省产品的研发时间和成本。该产品预装了Linux2.4系统,并随样机提供二次开发所需要各种资源和最专业的技术服务,用户不必关心硬件和驱动问题即可快速地将它应用到专业领域中去。
带有8路RS485的产品请参考网页:EMUC8485多串口服务器
点击下载产品手册: EMUC8485多串口服务器说明书
性能特点
高处理能力: 采用200MHz主频的32位ARM处理器,采用多任务Linux操作系统同时管理8路RS485总线,高速逻辑器件实现无延迟半双工控制,能够在满负荷工作情况下实时响应每一个终端设备的数据请求。
高可靠性:严格测试的串口通讯性能,与市场上应用普遍的各种485芯片通讯良好,每一路都具备二级防雷击和静电保护功能。核心系统采用6层板工艺,扩展板采用4层板工艺,具备有最佳的电气性能和抗干扰性能。
低功耗:系统的耗电量1~3W,无需外加任何的散热装置和措施;
兼容x86系统,开发应用软件快速方便:该产品采用的是ARM平台,但完全兼容X86平台,用户原来在X86 平台下编写的程序只需做一次重新编译即可实现移植。该产品已经定制好完整的硬件接口驱动,用户不需要关心底层,只需集中精力编写应用软件。
主要技术规格
硬件配置:
核心板: CPU:采用三星S3C2410A低功耗32位处理器,主频200MHz;
SDRAM: 64M Byte内存;
NANDFlash:64M Byte 存储空间;
串口:
信号类型:RS232......
WinCE驱动程序的分类(2009-05-14 11:04:00)
摘要:最近有一些同学发邮件问我,驱动调试助手到底能动态加载哪些驱动,为什么在加载USB设备驱动时总是失败。要解释这个问题,首先得弄清楚WinCE中驱动的相关概念。本文将主要介绍WinCE下驱动程序的分类。
驱动程序是介于操作系统和设备之间的一 个代码层,它的主要作用是为操作系统提供一个接口,以操作不同的硬件,包括物理的和虚拟的设备。虽然驱动程序有很多种,但从编程的角度来看,无非是往一个 固定的框架中添加相应的代码。这里的框架指的是一个接口,面向操作系统。代码实现的宗旨是,在正确的时间往正确的寄存器中写正确的值。
驱动程序的分类,从不同的角度有不同的 分法。拿串口驱动来说,你可以说它是一个分层驱动,你也可以说它是一个流驱动,你还可以说它是开机时自动加载的驱动……这似乎有点乱。如果你也这么认为, 那建议往下看。如果这些你都了如指掌,那就不浪费时间了,当然,您愿意找茬,我会很感谢!
先说本地驱动(Native Drivers)和流驱动(Stream Drivers)。WinCE下的驱动都可以归类到这两个里面,二者必居其一。这是从驱动程序提供给操作系统的接口来区分的。流驱动为操作系统提供了流接口函数,如XXX_Init()、XXX_Open()、XXX_Read()、XXX_Write()、XXX_Close()等等。这一类的驱动由Device Manager来管理,它调用ActivateDeviceEx()函数来加载流驱动。ActivateDeviceEx()的参数是注册表中相应的键,用来设定加载流驱动的属性,如Index、Order、Prefix等等。流驱动的注册表配置信息一般存放在[HKEY_LOCAL_MACHINE\Drivers\BuiltIn]下。流驱动加载成功后,应用程序通过调用CreateFile()、ReadFile()、WirteFile()等来访问流驱动的设备。流驱动可以动态管理,驱动调试助手就是用来帮助调试这一类驱动的。
与流驱动相反,本地驱动提供给操作系统的不是标准的流接口,而是事先约定好的特定接口。不同的设备,接口也不一样......
立宇泰推出一款全新3.5英寸PDA解决方案!(2009-05-08 16:20:00)
摘要:EMENU35不仅仅提供了完备的电源管理系统,还是一个外设丰富的解决方案。它完美整合了软硬件系统,在支持CDMA、GPS、双网口网关、ADSL测量模块等重负载设备情况下,仍然保证能够提供低待机电流,大大延长了设备使用时间和待机时间。目前该产品已经应用到电信CDMA网和ADSL网络的测试和维护运营中。
产品介绍:http://www.hzlitai.com.cn/product/Portable/EMENU35.html
产品特点包括:
采用低功耗ARM微处理器,主频400MHz,总线频率133MHz;
采用WINCE5.0操作系统,提供完美手持设备定制版本;
具备高效的电源管理系统(支持完全关机,睡眠,按键唤醒和电话唤醒),配备CDMA模块情况下,仍然有500小时以上待机时间;10小时以上全速工作时间(以上数据为采用5000mAh电池条件下测得)。支持快速充电。
采用3.5英寸320×240真彩液晶屏作为显示设备,带触摸屏,支持手写输入;
提供1个电源按键(按下5秒开机/关机,按下2秒睡眠/唤醒), 7个功能按键;
内置CDMA模块,支持电话拨打和接听,支持一键拨号上网,电话功能全具备;
内置GPS模块,支持各种电子地图,快速的热启动导航定位时间;
内置具备switch功能的双网口,提供2个10/100M自适应的RJ45网口,并采用动态加载驱动的方式保证它的低功耗电源管理;
提供主从USB接口;支持通过Microsoft ActiveSync与PC机同步,便于文件传递、应用程序更新等;
提供TF卡socket,支持2GB的TF存储卡;
定制系统支持.NET Compact Framework2.0,IE浏览器,WordPad,PPPoe等,手写输入法,提供SDK,方便用户进行二次开发。 -----------------------------------
供应形式:提供样机,批量供货,并接受委托定制
联系我们:http://www.hzlitai.com.cn/
联系电话:0571-56763523-801
联系QQ:384945206
-----------------------------------
产品图片: ......
行业PDA_手持终端定制解决方案(2009-05-08 16:18:00)
摘要: 行业PDA_手持终端定制解决方案具有良好的电源管理、重量轻、体积小、性能稳定、成本低廉等特点。适用于各种手 持移动金融终端、POS系统。适用行业:公共安全、金融、税务、海关、医疗、商业、工业制造等。
核心模块技术说明
性能卓越、价格低廉的处理器
——Samsung S3C44B0,66MHz
——Samsung S3C2410,266MHz
——Samsung S3C2440,533MHz
大容量存储设备 板上存储器设备—— 64Mbytes Flash(或更大容量), 64Mbytes SDRAM
外接存储器设备—— SD卡;通过USB接口外扩存储设备(U盘、移动硬盘等);通过IDE接口外扩CF卡
显示设备 不需要外置LCD控制器芯片,采用处理器内置LCD控制器,满足与各类TFT真彩液晶的接口。
宽温屏——各种尺寸规格的 TFT LCD (240×320、480×640解析度),色彩逼真 各种尺寸规格的灰度、彩色STN LCD(240×320、480×640解析度),成本低廉
输入设备
实现用户控制命令的输入,采用:
——4线电阻式触摸屏
——控制按键
IC卡读卡接口
提供接触式IC卡的读写接口
数据加密
板上专用加密芯片对数据进行加密、解密。
多个标准串口
3个标准串行接口,具备RS232电平转换:
——连接无线通讯模块(GSM/GPRS模块),实现短消息收发
——扩展RS485通讯接口,实现远程抄表、集中控制等功能
红外接口
与具备红外接口的设备通讯
摄像头接口
提供图象采集功能
声卡设备
集成在板上的AC97等声卡设备,实现语音提示、音乐播放、声音录制等功能
多路通用I/O(GPIO)
连接IC卡,控制按键等
10M/100M以太网卡
实现远程数据传输和远程控制、报警等
并口
用于连接(微型)打印机
电源管理
采用2200mAh Li电池供电,具备电源监控和......
qtopia-core-opensource-src-4.3.3移植到ARMSY(2009-04-09 10:50:00)
摘要:买了块立宇泰的ARMSYS2440开发板,板子提供的qt开发包是qt-embedded-2.3.7 qtopia-free-1.7.0 qt-x11-2.3.2,用这个版本的qt来写程序和不习惯,因为我一直都是在用qt-4.2.2在写程序,所以决定升级qt,到Trolltech的网站上看,最新的版本是qtopia-core-opensource-src-4.3.3,于是将其下载下来,解压到/root,形成/root/qtopia-core-opensource-src-4.3.3目录,
1、在中qtopia-core-opensource-src-4.3.3\src\gui\embedded\qmouselinuxtp_qws.h加入
#define QT_QWS_IPAQ
#define QT_QWS_IPAQ_RAW
2. 并在qmouselinuxtp_qws.cpp里把/dev/h3600_ts替换为自己板子的设备文件,我的板子的设备为/dev/h3600_tsraw,正好与qmouselinuxtp_qws.cpp中使用的设备中一致,就不用改了。
注意步骤2中如果只定义了#define QT_QWS_IPAQ则使用的是/dev/h3600_ts,如果两个都定义了则使用的是/dev/h3600_tsraw
3、新建一个专门用于编译的文件夹(为什这样做??^_^, 呵呵,直接在qtopia-core-opensource-src-4.3.3的目录下编译会包警告或者错误哦)
#makedir build
4、配置
#cd build
#../qtopia-core-opensource-src-4.3.3/configure -release -no-qvfb -xplatform qws/linux-arm-g -embedded arm -no-stl -plugin-sql-sqlite -no-qt3support -no-nis -no-cups -no-iconv -no-qdbus -no-freetype -depths 4,8,16,32 -qt-mouse-linuxtp
5、编译
#gmake
6、安装
#gmake install
qtopia-co......
Windows Mobile 开发常见问题集(2009-04-09 10:39:00)
摘要:1、Q:新建项目的时候选择哪个项目类型才能创建智能设备的应用程序?
A:在Visual Studio的新建项目对话框中选择Visual C#或者Visual Basic项目类型,选择智能设备模板,然后再选择相应的设备SDK,最后选择“Device Application”,就可以创建一个移动设备的应用程序了。
2、Q:托管代码与本地代码有哪些区别?
A:托管代码是指使用.NET Compact Framework开发的程序代码,可执行文件被编译成IL,执行时需要有.NET的运行时环境。而本地代码指用C 等语言开发的程序代码,可执行文件被编译成与CPU指令集有关的机器码,可以直接运行。
3、Q:能不能简要介绍一下Magneto里面对OTA和MMS的支持?
A:Magneto对OTA有很好的支持,SDK文档的通讯部分中,有针对OTA的专门介绍。MMS的应用程序基本都是由第三方开发的,因为MMS是基于WAP协议的,而Magneto本身对WAP的支持也很好,具体的协议也可以在SDK文档里找到。
4、Q:请问用Visual Basic .NET开发PDA数据库程序能不能使用ADO.NET?
A:Visual Basic .NET开发PDA数据库不需要引用System.data.oledb,只需要引用System.Data.SqlServerCe命名空间就可以了。 该命名空间中的数据库操作类和ADO.NET是基本一致的。可以用它们来开发针对SQL Server CE的应用程序。
5、Q:在Visual C 2005中,可以使用.Net Compact Framework吗?
A:不能,现在.NET Compact Framework只支持C#和VB.NET,而不支持C /CLI。但是在VS.NET 2005中可以用C 来开发Native代码来支持移动设备。
6、Q:从什么地方可以得到Smartphone开发环境?
A:Smartphone的SDK可以在微软网站上找到,而Visual Studio 2005 Beta 2可以通过参加微软活动的方式获得。MEDC 2005的参加者都获得了VS.NET 2005和Windows Mobile 5 SDK的开发光盘。
7、Q:托管性的代码执行效率怎么样?和使用Visual C 编写的代码相......
Qtopia-core-4.3.3编写的第一个程序helloworld(2009-04-09 10:35:00)
摘要:前两天把Qtopia-core-4.3.3移植到了我的ARM开发板上,今天自己编写了一个helloworld程序,准备移植到开发板上。
1、在PC上写helloword程序代码
我用的是QDevelop-0.25-2自动生成的Dialog程序,没做任何修改。在PC上编译运行,一切正常。
2、交叉编译
设置环境变量
#export PATH=/usr/local/Trolltech/Qtopiacore-4.3.3-arm/bin:$PATH
生成Makefile
#/usr/local/Trolltech/QtopiaCore-4.3.3-arm/bin/qmake -spec /root/qtopia-core-opensource-src-4.3.3/mkspecs/qws/linux-arm-g helloworld.pro
其中 /root/qtopia-core-opensource-src-4.3.3/是交叉编译QtopiaCore-4.3.3-arm是的路径,我也尝试过用/usr/local/Trolltech/QtopiaCore-4.3.3-arm/mkspecs/linux-arm-g 代替 /root/qtopia-core-opensource-src-4.3.3/mkspecs/qws/linux-arm-g 但是会出错,具体原因还不清楚。
3、编译
#make
结果提示很多网络相关的东西没有定义,为什么这样??我没有使用网络的东西呀,原来Qtopia的桌面使用的是C/S结构的东东哈,所以默认是使用的网络的。那只要添上网络相关的库就OK了吧。
4、修改工程文件
用gedit打开helloworld.pro。将QT = gui core修改为QT = gui core network然后保存
5、重新生成Makefile
#/usr/local/Trolltech/Qtopiacore-4.3.3-arm/bin/qmake -spec /root/qtopia-core-opensource-src-4.3.3/mkspecs、qws/linux-arm-g helloworld.pro
6、编译
#make
哈哈,这次编译通过了。<......
移植spca5xx-v4l1goodbye到立宇泰ARMSYS244O开发板(2009-04-09 10:33:00)
摘要:前面我讲解了如何移植spca5xxle到立宇泰ARMSYS244O开发板。但是spca5xxle只能输出JPG格式的图像数据,如果我们想要RGB格式的数据就必须自己解码,如果移植的是完整的spca5xx驱动就不会有这些问题。所以今天我将spca5xx-v4l1goodbye到立宇泰ARMSYS244O开发板上。
我的开发板是立宇泰ARMSYS2440,内核是2.4.20_elfin-d1.5。
1、首先下源码包spca5xx-v4l1goodbye.tar.gz,然后解压
#tar -xzvf spca5xx-v4l1goodbye.tar.gz
解压后得到一个spca5xx-v4l1goodbye目录,里边是spca5xx-v4l1goodbye的源代码。
2、修改Makefile
#cd spca5xx-v4l1goodbye
#gedit Makefile&
将
ifneq ($(shell uname -r | cut -d. -f1,2), 2.4)
ifneq ($(KERNELRELEASE),) # We were called by kbuild
CFLAGS = $(DEFINES)
obj-m = spca5xx.o
spca5xx-objs := drivers/usb/spca5xx.o drivers/usb/spcadecoder.o
else # We were called from command line
KERNEL_VERSION = `uname -r`
KERNELDIR := /lib/modules/$(KERNEL_VERSION)/build
PWD := $(shell pwd)
MODULE_INSTALLDIR = /lib/modules/$(KERNEL_VERSION)/kernel/drivers/usb/media/
# Targets, don't change!
default:
@echo ' Building SPCA5XX driver for 2.5/2.6 kernel.'
@echo ' Remember: you must have read/write acce......
移植spcaxx-le到立宇泰ARMSYS244O开发板(2009-04-09 10:32:00)
摘要:我的开发板是立宇泰ARMSYS2440,内核是2.4.20_elfin-d1.5。
1、首先下载补丁usb-2.4.31LE06.patch.tar,然后解压到内核目录的driver/usb目录下
#cp usb-2.4.31LE06.patch.tar driver/usb
#cd driver/usb
#tar -xzvf usb-2.4.31LE06.patch.tar
解压后得到一个usb-2.4.31patch的补丁文件
2、给内核打补丁
#patch -p1 < usb-2.4.31patch
打完补丁之后在driver/usb目录下生成了一个spcaxx的目录,里面有我们需要的驱动源码文件。在driver/usb目录下生成了一个Makefile.rej的文件,将该文件中行首有加号的部分添加到Makefile文件中
对应的部分。
3、修改scpca5xx目录下spca5xx_core.c
找到定义spca5xx_driver的地方,将原来的定义
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,22)
static struct usb_driver spca5xx_driver = {
.owner = THIS_MODULE,
.name = "spca5xx",
.id_table = device_table,
.probe = spca5xx_probe,
.disconnect = spca5xx_disconnect
};
#else
static struct usb_driver spca5xx_driver = {
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,20)
THIS_MODULE,
#endif
"spca5xx",
spca5xx_probe,
spca5xx_disconnect,
{NULL,NULL}
};
#endif
替换为下边的内容:
static struct usb_driver spca5xx_driver = {
name: "s......
WinCE设计开发常见问题(WinCE开发特性及忠告)(2009-03-26 16:22:00)
摘要:最近一段时间,移动设备开发越来越多的成为了程序员社区的话题。移动设备主要包括智能手机和PDA,是嵌入式开发中很重要的一个方向。在智能手机领域被大多数手机厂商支持的J2ME无疑是领头羊,微软CE平台的SmartPhone也逐渐成为关注焦点。一直不温不火的PDA市场,也在行业应用领域有所收获,Pocket PC由于其开发与Windows平台的一致性而得到了开发人员的青睐。
在长期关注程序员论坛的过程中,我发现由于Windows CE开发的独特性,加之多个版本并存、缺乏中文参考资料,所以论坛上充斥着大量相同的入门问题。我希望在这里能够为刚转入Windows CE开发的程序员明晰一些概念,将现有的Windows CE版本与开发工具之间的关系给大家解释清楚。
Windows CE与平台开发
Windows CE是微软为嵌入式设备打造的操作系统,而嵌入式设备可谓多种多样,这就要求CE操作系统必须是可定制的,所以微软将Windows CE设计为模块化的操作系统。说简单点,我们可以把Windows CE想像成一盒积木,你可以用积木搭建出任何物体,但不一定要把所有的积木都用上。
Windows CE搭建出来的物体就是平台,是适应某种有固定标准的嵌入式设备的操作系统子集,最著名的平台就是Pocket PC了,是提供给没有键盘的掌上电脑使用的平台。由于平台和硬件的一致性,所以有时候我们也用平台的名称来称呼整个系统——硬件与操作系统的总和。
我们也可以自己开发平台,开发工具是微软提供的Platform Builder,Platform Builder的版本号是和Windows CE的版本号一致的。
更多程序员关心的是应用程序的开发,而应用程序开发是针对特定平台的,我们在开发之前必须安装目标平台的SDK,才能够开发出适应目标平台的开发工具。
Windows CE开发环境综述
初学者另外一个比较糊涂的概念是版本的问题,现在市面上能够见到Windows CE的两代产品,它们的内核分别基于Windows CE 3.0和Windows CE.NET(即4.0)。
微软将今年刚面世的Pocket PC 2003和Smart Phone 2003统称为Windows Mobile 2003,我们大多数时候还是习惯地沿用老称谓。
而市面上经常见到的P......