如何寻找嵌入式平台?
我对嵌入式编程的定位硬件方面很陌生,所以在对所有的选择完全不知所措之后(pc104、定制板、每个板的无数选项、批量折扣、开发套件,啊!!)我在这里问为了某种方向。
基本上,我必须找到一个新的主板并(很可能)重新实现程序逻辑。用 C/C++/Java/C#/Pascal/BASIC 重写这个对我来说不是问题。所以我真正的问题是找到硬件。该主板上还连接有几个其他设备。以下是我需要做的总结:
必需:
- 2 个 RS232 串行端口(一个一直用于主 UI,第二个不连续)
- 1 个调制解调器(9600+ 波特率可以) [调制解调器将仅同时使用串行端口设备之一,因此与一个串行端口共享中断是可以的,但不能同时使用两者]
- 最小永久/长期存储:无论操作系统需要 + 1 MB(可执行文件)+ 512 KB(数据文件)
- RAM:最小,无论操作系统需要什么,再加上可执行文件可能需要 1MB。
最好有:
- USB 端口
- 以太网端口
- 无线网络
实现语言(任何 O/SI 都会适应):
- 第一选择 Java/C#(Mono 可以)
- 第二选择是 C/Pascal
- 第三是 BASIC
好吧,考虑到这一切,我很难找到支持这种低成本的硬件。我访问的每个制造商网站都有很多选择,很难看出他们的产品是否能满足我的必备要求(例如他们有时会列出 3 个“串行端口”,但似乎这三个端口中只有一个是 RS232 ,例如,不要提及其他两个是什么)。第一个约束是成本,第二个约束是尺寸。
谁能帮我解决这个问题吗?这个小任务让我觉得我应该选择 EE 而不是 CS :-)。
编辑:一点背景知识:这是一个当前正在生产的系统,但是原始程序员去世了,并且当前的硬件制造商无法找到运行(当前)DOS 系统的硬件,因此我需要在现代平台中重新实现它。我只能改变编程和主板硬件。
I am new to the locating hardware side of embedded programming and so after being completely overwhelmed with all the choices out there (pc104, custom boards, a zillion option for each board, volume discounts, devel kits, ahhh!!) I am asking here for some direction.
Basically, I must find a new motherboard and (most likely) re-implement the program logic. Rewriting this in C/C++/Java/C#/Pascal/BASIC is not a problem for me. so my real problem is finding the hardware. This motherboard will have several other devices attached to it. Here is a summary of what I need to do:
Required:
- 2 RS232 serial ports (one used all the time for primary UI, the second one not continuous)
- 1 modem (9600+ baud ok) [Modem will be in simultaneous use with only one of the serial port devices, so interrupt sharing with one serial port is OK, but not both]
- Minimum permanent/long term storage: Whatever O/S requires + 1 MB (executable) + 512 KB (Data files)
- RAM: Minimal, whatever the O/S requires plus maybe 1MB for executable.
Nice to have:
- USB port(s)
- Ethernet network port
- Wireless network
Implementation languages (any O/S I will adapt to):
- First choice Java/C# (Mono ok)
- Second choice is C/Pascal
- Third is BASIC
Ok, given all this, I am having a lot of trouble finding hardware that will support this that is low in cost. Every manufacturer site I visit has a lot of options, and it's difficult to see if their offering will even satisfy my must-have requirements (for example they sometimes list 3 "serial ports", but it appears that only one of the three is RS232, for example, and don't mention what the other two are). The #1 constraint is cost, #2 is size.
Can anyone help me with this? This little task has left me thinking I should have gone for EE and not CS :-).
EDIT: A bit of background: This is a system currently in production, but the original programmer passed away, and the current hardware manufacturer cannot find hardware to run the (currently) DOS system, so I need to reimplement this in a modern platform. I can only change the programming and the motherboard hardware.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我建议购买便宜的 Atom Mini-ITX 板,其中一些带有多个 - 4+ RS232 端口。
但对于串行->USB 转换器,这并不是真正的问题。只需获得一个 Atom 即可。如果您有代码,请将您的软件移植到 Linux。
这里是一个 Jetway Mini-Itx 板 的链接,以及一个 4 端口 RS232 扩展模块。总共约 170 美元,还有一些额外费用用于内存、磁盘、机箱和 PSU。总计 250-300 美元。
现在这是一个 Intel Atom 主板,售价 69 美元,您可以在其中添加闪存而不是驱动器,和 USB 串行转换器,用于您需要进行的任何数据收集。
PC104 在最大限度地利用 19 英寸或 23 英寸机架安装配置中的空间方面具有很大的价值 - 如果您不在那个空间内,PC104 就是浪费您的时间和金钱,恕我直言。
I suggest buying a cheap Atom Mini-ITX board, some of which come with multi - 4+ RS232 ports.
But with Serial->USB converters, this isn't really an issue. Just get an Atom. And if you have code, port your software to Linux.
Here is a link to a Jetway Mini-Itx board, and a link to a 4 port RS232 expansion module for it. ~$170 total, some extra for memory, a disk, and a case and PSU. $250-$300 total.
Now here is an Intel Atom Board at $69 to which you could add flash storage instead of drives, and USB-serial converters for any data collection you need to do.
PC104 has a lot of value in maximizing the space used in 19" or 23" rackmount configurations - if you're not in that space, PC104 is a waste of your time and money, IMHO.
BeagleBoard 应该有你需要的一切,大约花费 200 美元 - 它可以运行 Linux,所以可以使用你喜欢的任何编程语言。
The BeagleBoard should have everything you need for $200 or so - it can run Linux so use whatever programming language you like.
只要是 x86,“现代”系统就会运行 DOS,我建议您查看供应商的工业 PC 板,例如 Advantech,如果您现有的系统符合 PC/DOS/BIOS 标准,则很可能无需更改即可运行。
也就是说,如果您的原始系统在 DOS 上运行,那么您很可能不需要现代 x86 系统的马力,并且可以通过使用微控制器板(使用相当普遍的东西,例如 ARM。另外,如果 DOS 是操作系统,那么您很可能根本不需要操作系统,并且可以开发系统 “裸机”。仅支持 Linux 所需的资源可能远远大于现有应用程序和操作系统的总和,而且除非您打算大幅扩展系统的功能,否则几乎没有任何好处或没有任何好处。
有许多可用资源(免费和商业)可用于在裸机系统或使用简单实时内核(例如 FreeRTOS 或 eCOS)的系统上实现文件系统和 USB,这些内核的占用空间比 Linux 小得多。
A 'modern' system will run DOS so long as it is x86, I suggest that you look at an industrial PC board from a supplier such as Advantech, your existing system may well run unchanged if it adheres to PC/DOS/BIOS standards.
That said if your original system runs on DOS, the chances are that you do not need the horsepower of a modern x86 system, and can save money by using a microcontroller board using something fairly ubiquitous such as an ARM. Also if DOS was the OS, then you most likely do not need an OS at all, and could develop the system "bare-metal". The resources necessary just to support Linux are probably far greater than your existing application and OS together, and for little or no benefit unless you intend on extending the capability of the system considerably.
There are a number of resources available (free and commercial) for implementing a file system and USB on a bare-metal system or a system using a simple real-time kernel such as FreeRTOS or eCOS which have far smaller footprints than Linux.
Windows 嵌入式站点 ( http://www.microsoft.com/windowsembedded/en -us/default.mspx )
拥有大量资源以及硬件合作伙伴、分销商和开发套件的链接。甚至还有一个“Spark”孵化项目( http://www .microsoft.com/windowsembedded/en-us/community/spark/default.mspx)
使用 Windows CE 的另一个好处是它现在支持 Silverlight 作为开发环境。
The Windows embedded site ( http://www.microsoft.com/windowsembedded/en-us/default.mspx )
has a lot of resources and links to hardware partners, distributors and development kits. There's even a "Spark" incubation project ( http://www.microsoft.com/windowsembedded/en-us/community/spark/default.mspx )
What's also really nice about using windows ce is that it now supports Silverlight as a development environment.
我已经使用 Chris 提到的 jetway 板/子卡成功地完成了嵌入式控制、我的家庭路由器、我的 HTPC 前端等各种项目。
您没有提到实际应用是什么,但如果您由于温度或湿度限制而需要更工业的东西,我发现 http://www.logicsupply.com/ 是一个很好的资源,适用于可能会受到打击的 mini-itx 系统。
对于这些板的提示是,考虑到您的最低存储要求,请勿使用硬盘驱动器。使用紧凑型闪存卡的 IDE 适配器作为系统存储或 SD 卡。在这些应用中,没有移动部件通常是一大优点。他们通常还提供带有直流电源输入的型号,因此您可以使用笔记本电脑或壁式外接电源,从而最大限度地减少其最终尺寸。
这个 http://www.fit-pc.com/web/ 是另一个选项在非常小的 Atom PC 市场中,您可能需要使用一些 USB 转换器才能获得所需的连接。
Paul 提到的 beagle 板也是一个不错的选择,它还有子卡,可以添加您需要的任何端口,并且它有一个板载 SD 读卡器,用于您需要的任何存储。与原子系统相比,这也是一个低得多的功率选择。
有大量的单板计算机可以满足您的需求。在搜索时,您通常会发现他们在处理器板本身上没有保留很多接口连接器,而是您需要查看他们提供的可堆叠子卡,这些子卡可以提供您需要的任何连接(RS-232 等)。这通常就是为什么您在描述中只看到“串行端口”的原因,因为串行端口的最终物理层将在子卡上定义。
您还可以使用大量基于 ARM 的开发板,其中许多都与 beagle 板类似。谷歌搜索“模块上的系统”是找到许多选项的好方法。这些通常也是一个在一张卡上带有处理器/RAM/闪存的模块,然后提供各种载板,该模块插入其中将提供您所需的各种形式的连接。
在开发方面,如果您更熟悉 x86 开发,Atom 板可能是最简单的。不过 ARM 在 Linux 下得到了强有力的支持,因此启动和运行它们没有什么困难。
就我个人而言,我会避免像您讨论的那样使用 Windows 进行无头设计,我很少看到基于 Windows 的嵌入式设备不仅不好。
I've used the jetway boards / daughter cards that Chris mentioned with success for various projects from embedded control, my home router, my HTPC front end.
You didn't mention what the actual application was but if you need something more industrial due to temperature or moisture constraints i've found http://www.logicsupply.com/ to be a good resource for mini-itx systems that can take a beating.
A tip for these board is that given your minimal storage requirements, don't use a hard drive. Use an IDE adapter for a compact flash card as the system storage or an SD card. No moving parts is usually a big plus in these applications. They also usually offer models with DC power input so you can use a laptop like or wall wart external supply which minimizes its final size.
This http://www.fit-pc.com/web/ is another option in the very small atom PC market, you'd likely need to use some USB converters to get to your desired connectivity.
The beagle board Paul mentioned is also a good choice, there are daughter cards for that as well that will add whatever ports you need and it has an on board SD card reader for whatever storage you need. This is also a substantially lower power option vs the atom systems.
There are a ton of single board computers that would fit your needs. When searching you'll normally find that they don't keep many interface connectors on the processor board itself but rather you need to look at the stackable daughter cards they offer which would provide whatever connections you need (RS-232, etc.). This is often why you see just "serial port" in the description as the final physical layer for the serial port will be defined on the daughter card.
There are a ton of arm based development boards you could also use, to many to list, these are similar to the beagle board. Googling for "System on module" is a good way to find many options. These again are usually a module with the processor/ram/flash on 1 card and then offer various carrier boards which the module plugs into which will provide the various forms of connectivity you need.
In terms of development, the atom boards will likely be the easiest if your more familiar with x86 development. ARM is strongly supported under linux though so there is little difficulty in getting these up and running.
Personally i would avoid windows for a headless design like your discussing, i rarely see a windows based embedded device that isn't just bad.
看一下 Arduino 系列中的一块板,特别是 Arduino Mega。非常灵活的板,成本低,Mega 有足够的 I/O 端口来完成您需要它做的事情。没有片上调制解调器,但您可以通过 I2C 连接器连接到 Phillips PCD3312C 之类的东西,或者您可以找到一个 Arduino 附加板(称为“屏蔽”)来为您提供调制解调器功能(或蓝牙、以太网、等等)。此外,它们很容易连接到外部存储设备(如闪存驱动器或 SD 卡),因此您应该有足够的存储空间。
对于更像 PC 的设备,请寻找由威盛 EPIA 板供电的现有设备。有很多设备使用这些设备(机顶盒、边缘路由器、网络安全设备等),您可以购买它们并重新编程。例如,我发现了一个应该是网络安全设备的设备。它配备了 EPIA 板、RAM、硬盘驱动器和电源。我所要做的就是格式化硬盘,安装 Linux(Debian 已经包含了所有必需的驱动程序),然后我就拥有了一台完整的迷你计算机。我也只花了大约 45 美元(在 eBay 上买的全新、未开封)。
更新:我发现的特定设备是 Ingrian Networks 的 EdgeSecure i10。
Take at look at one of the boards in the Arduino line, in particular the Arduino Mega. Very flexible boards at a low cost, and the Mega has enough I/O ports to do what you need it to do. There is no on-chip modem, but you can connect to something like a Phillips PCD3312C over the I2C connector or you can find an Arduino add-on board (called a "shield") to give you modem functionality (or Bluetooth, ethernet, etc etc). Also, these are very easy to connect to an external memory device (like a flash drive or an SD card) so you should have plenty of storage space.
For something more PC-like, look for an existing device that is powered by a VIA EPIA board. There are lot of devices out there that use these (set-top boxes, edge routers, network security devices etc) that you can buy and re-program. For example, I found a device that was supposed to be a network security device. It came with the EPIA board, RAM, a hard drive, and a power supply. All I had to do was format the hard drive, install Linux (Debian had all necessary drivers already included), and I had a complete mini-computer ready to go. It only cost me around $45 too (bought brand new, unopened on ebay).
Update: The particular device I found was an EdgeSecure i10 from Ingrian Networks.