《嵌入式开发探秘》之第一章 前言

来源:互联网 发布:为什么讨厌中国人 知乎 编辑:程序博客网 时间:2024/06/07 14:53

      前两年受朋友所托,帮其公司牵头开发一套嵌入式系统,前后历时一年有余,系统开发完成后,一直想把开发过程中的一些体会和点滴经验整理成书,分享给奋战在一线的嵌入式开发的朋友们,苦于总是找不出成片的时间,只好作罢。最近稍微有点闲暇,先在微博上一点一点攒出来吧。也算对自己一个交代。

1.1 项目简介

 为了便于大家理解后续内容,先对项目做一个简单介绍。本项目对甲方来说呈现的是产品形态,对我来说就是一个项目,项目者,一次性,个性化,定制化,短周期为其属性;所谓产品,则有通用性,生命周期,迭代过程,版本管理等要素。项目的目标是在规定的时间内,利用有限的资源,高质量的完成某个特定用户的需求;而产品的目标是解决一批同类用户的通用需求。项目和产品是相辅相成的关系,很多产品就是从项目中来的。有点绕,算啦,别啰嗦了,待会吧自己也绕晕啦。

本项目是开发一个集中监控产品,用于电力行业的直流屏系统。需要完成的主要功能包括:(1)实现与各类模拟量和开关量采集设备间通信,通信方式支持RS485和CAN,以图形界面方式呈现各类采集量;(2)支持图形界面下的定值设置及定值下发,根据设定定值做出相应故障判断并声光告警;(3)与绝缘仪配合实现母线和馈出支路绝缘监测,包括交流窜入和直流互窜监测;(4)实现基本的电池管理功能,包括均浮充管理、电池实时容量估算、电池曲线、在线活化、环境温度监测等;(5)根据告警类别给出不同的开出量;(6)实现与后台系统的通信,要求支持MODBUS、CDT91、IEC61850等通信协议,硬件上要支持双网口。(7)系统需要支持触摸屏和鼠标输入设备,至少提供3路RS485接口,一路RS232接口,2路CAN2.0A接口,2路USB接口,7个干接点开出量接口。

1.2 硬件设备选型

硬件设备选型需要考虑的因素主要包括:产品功能需求及性能目标、成本控制指标、研发周期要求等。综合上述因素,决定选用美国TI公司的AM3358处理器,这是一款基于ARM Cortex-A8的微处理器,选择它的主要原因是它支持2路工业千兆位以太网 MAC,2路控制器局域网 (CAN) 端口以及6个UART端口,比较契合本项目对外设端口的要求。为了进一步缩短开发周期并保证项目可控,最终选定了由深圳英培特提供的基于AM3358开发的核心版,自己开发接口版。

1.3 软件系统选型

软件系统选型主要选择的就是操作系统,而目前适用于嵌入式设备的操作系统有很多,比如Linux、WinCE、Android、uCLinux、VxWork、uCOS-II、PalmOS、FreeRTOS、Symbian等,但绝大多数情况下都是在Linux和WinCE中做选择。本项目最终选用了Linux,主要基于以下原因:(1)Linux是完全开源的,有一大批Linux的爱好者在世界各地为其升级完善做着默默无闻的工作,资源获取方便;(2)Linux内核相对紧凑,可裁剪,效率高;(3)Linux是跨平台系统,支持包括x86、ARM、MIPS、PowerPC等几乎所有的CPU架构;(4)当然还有一个最重要的原因,它免费。

相比于WinCE,Linux也有其劣势,特别是针对本项目,因为有大量图形界面处理工作,显然WinCE在图形界面处理方面要方便的多。好在现在Linux下也有很多GUI的解决方案可选,包括Qt、GTK+、wxWidgets、Swing/AWT等,本项目最终选定了Qt,一方面是其跨平台支持,再者是因为其提供完整的开发工具链。

原创粉丝点击