|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
如何开发一个嵌入式的产品。
这里我们设置一个案例,共同来做这样一个产品,它有四个功能:
(1)实时的监控RFID信号,也就是门禁卡或者公交卡发来的信号。
(2)采集到门禁卡的数据后,和数据库核对一下,如果通过验证,我们就驱动一个继电器,把门打开。
(3)这些工作完成以后,把这次操作记录到数据库,具体实现可以通过无线WIFI模块或者以太网上传给服务器。
(4)同时这个系统需要一个屏幕,去显示门禁系统的各种状态,并和系统进行交互。
好的,在需求明确以后,我们来分析一下这个RFID的读卡器。开发板配套的RFID模块实际上是一个SPI的总线设备,那么在Linux系统当中SPI的驱动是已经调试好的,这里需要我们通过SPI总线对这个RFID模块进行数据读取就可以了。 而对于继电器的操作,实际上归根到底是通过对GPIO的操作来实现的。另外数据上报并上传给服务器这样的操作也很简单,就是利用SOCKET方式通过编程来实现网络通讯,这里并不需要我们开发底层驱动,具体的方法可以参考实验教程中关于网络通讯的部分。
如果这个门禁系统设备比较高端些的话,可能需要用一个屏幕来和用户进行交互,这时候可以做一个图形系统的应用程序来实现,当然我们的图形系统可以选择QT或者Android,如果选择QT的话就要使用C++作为编程语言,选择安卓做界面应用程序的话呢,就需要用到JAVA来开发了。
还有一个很重要的事情需要我们了解:嵌入式产品开发初期最重要的工作之一就是选择屏幕!对于PC用的电脑显示器,虽然市面上有各种厂家各种规格型号的屏幕,但是接口都是完全兼容的,一般都是VGA接口、DVI、或者HDMI,这些接口引脚定义和大小以及规格都是兼容的,插上就可以直接驱动。但是嵌入式的产品不是这样,虽然说接口形式无非就是RGB、LVDS或者MIPI等接口,但是不同产品的屏幕定制性非常强,比如同样是RGB接口,但是不同屏幕的接口定义,以及大小规格都是不同的,需要中间增加转换电路。举个例子来讲,三星和苹果公司的手机屏幕不能混用,虽然都是一种接口,比如MIPI接口,但是接口的针脚定义,规格,大小完全不同,像华为、小米、联想等等手机或平板的屏幕一般也是不兼容的,也就是说市面上成百上千的屏幕接口都是不一致的,嵌入式产品需要追求差异化,每个厂家都想在外观上有所创新,这样在嵌入式开发的时候需要我们定做驱动板,并且自己去修改驱动来适配。
也就是说嵌入式产品开发的第一步往往就是选择屏幕,我们要花费比较多的精力去考察选择什么样的屏幕,这个是非常重要的事情,因为屏幕本身往往决定着这个产品的外壳、外形等方面,而且一旦选了哪个屏幕,基本就不能再换了,再次更换屏幕就意味着产品的外壳外形都要大动,涉及到昂贵的模具、电路涉及等成本。
需要注意的是,屏幕一旦选定以后,驱动开发的难度其实并不大,虽然说不同屏幕的接口定义和规格不同,但是都会遵循一定的接口规范,比如说像RGB、LVDS接口规范等等,我们只需要做个转换板,把引脚定义对应上就可以了,有的时候也需要根据情况做一下背光等电路。
在驱动程序方面,Linux操作系统本身已经把驱动程序主体部分做好了,需要我们做的只是根据屏幕的相关文档修改一下驱动程序里面的一些参数,比如分辨率、刷新频率、左肩右肩等。
对于这个门禁系统的案例,我们会给大家提供一个例程。相信大家按照前面所述的顺序做下来,嵌入式技术就一定入门了。再次明确一下,我们的目标是做出产品,利用ARM和Linux系统来开发出高端稳定的嵌入式产品,而不是一定要读通Linux的源码,也不需要太多深究ARM本身处理器的特点。 |
|