软件中间层开发实例

我的工作
(1)并不是单纯的驱动开发,还有嵌入式软件开发,测试程序的编写,以及搭建测试环境,对程序进行正确性,稳定性测试。黑盒测试,白盒测试都有。

中间层程序编写背景
(1) 程序的开发背景是:一个集中终端控制平台,应用于火车列车控制,另一个名字可以称为:火车综合控制平台。
(2)简述一下,系统整体运行逻辑。把铁路分为若干个铁路段,段内分布有很多传感器,用于收集列车当前所处位置的相关信息。
(3)收集到的信息,通过互联网进行转发,经过通信版传输到主控板上。主控板是一个2X2 冗余的设计,进一步保证列车控制系统的稳定性,安全性等。
(4)主控板接收到数据后,进行数据处理,然后进行指令下达。顺序是:主控板->通信版->铁路段。
(5)上述信息传输过程中,应用到了多种信息传输协议。例:udp传输协议,主控板与通信版之间的板间协议,铁路段上应用的modbus协议。在这里不进行详细的叙述。
(6)铁路段接收到下达的指令后,列车进行相应减速,加速。铁路段上舵机进行相应控制。这就是整个系统逻辑的运行原理。
(7)信息的采集,信息的传输,信息数据的处理,信息指令的下发,信息指令的执行。听起来似乎很简单的一个系统。但是真正做成一个成品,其实并不简单。简述一下几个立即想到的几个问题:

**①** 采集到的信息一定是大量的、实时的信息,如何保证信息在传输的过程中数据尽可能
	的少丢失,甚至是不丢失?
**②**还有就是驱动开发,通信接口的选择,usart, 网口,gpio等,它的开发可能会遇到
	很多想不到的问题,软件,硬件的交叉编译,交叉开发。当出现问题时,使用排除法
对问题进行排除,大胆猜测,小心求证。

(8)系统软件架构图
在这里插入图片描述
三 中间层的编写
(1)在应用软件层与底层驱动层之间,增加一层,即中间层。起到的作用是,避免应用层与驱动层直接进行交互。增强程序的稳定性,可读性,易修改性。
(2)驱动层接收到数据之后,不再直接传输给应用层,而是传输到中间层,中间层保存数据,这里数据的存储方式均为链式存储,双向链表。
(3)应用层需要需要数据时,则在中间层里面取出数据。这样就隔绝了应用层与驱动层的直接交互。
(4)上述的是数据接收的过程,数据指令的发送过程,则完全与之相反。
(5)应用层串口数据收发,udp网口收发,tcp网口收发,等各种数据收发接口,均指向中间层,在中间层进行暂存后,再调动驱动层程序。
(6)这里中间层起到的一个作用就是,采集的数据是大量的,实时的,应用层可能会不能及时取数据。而中间层这时就会起到一个临时仓库的作用,把接收到的数据存储起来。上层应用需要调用时,及时向上传输。

四 零碎的经验
(1)对整个系统进行测试时,不能局限在当前的测试环境中,要用“大局观”,测试,观察整个大环境。
(2)及时沟通,高效沟通,这样可以少走许多不必要的弯路。
(3)理清思路之后,再进行编程。这样你会发现,原来编程如此简单。
(4)数据收发缓冲区概念,相当于一个缓冲的窗口,数据到来时先存到这里,然后再由需要者取出。
(5)流式传输,爆式传输。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值