下面文档系本人开发的流媒体数字会议系统中控机的软件架构,有写的不好的地方,欢迎拍砖

1 .引言

1.1编写目的和使用范围

1.1.1 编写目的

本文档用来确定Nios的软件架构,以便帮助软件工程师更好的完成中控机的业务逻辑功能。

1.1.2 使用范围

本文档适用于飞利信的流媒体总线有线数字会议系统,中控机和终端开发工程师,以及相关产品经理和项目经理。

1.2术语表

Nios : Nios嵌入式处理器是ALTERA公司推出的采用哈佛结构、具有32位指令集的第二代片上可编程的软核处理器,其最大优势和特点是模块化的硬件结构,以及由此带来的灵活性和可裁减性。

 

SOPC : System-on-a-Programmable-Chip,即可编程片上系统。用可编程逻辑技术把整个系统放到一块硅片上,称作SOPC。可编程片上系统(SOPC)是一种特殊的嵌入式系统:首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。

 

FPGA : FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

 

TDM :TDM就是时分复用模式。时分复用是指一种通过不同信道或时隙中的交叉位脉冲,同时在同一个通信媒体上传输多个数字化数据、语音和视频信号等的技术。

 

 

 

 

 

 

 

2 .中控机

2.1中控机功能需求

1) 实现脱机或联机流程下,会议系统的报到、表决、发言、摄像头追踪等功能;

2) 联机流程下,实现对FPGA、终端、前面板等模块的在线升级功能;

3) 连接终端的六路通道实现独立并行工作,互不干扰;

4) 通过网口或者串口与上位机进行通信;

5) 实现十六路语音数据的混音输出(不需要Nios 软件进行干预)。

 

2.2整体方案简介

中控机的整体设计方案中,依据硬件和功能划分如下

1. FPGA芯片为ALTERA的S3C55,芯片的功能可以分为三个部分:

a. FPGA :实现Nios 与外界(PC机的网口,串口,终端,前面板)通信的基本功能,不做业务逻辑控制;

b. SOPC : 搭建一个可裁剪定制的CPU+RAM+存储接口+外围电路 硬件平台;

c. Nios软件 :在SOPC 搭建的嵌入式处理器上运行的软件,负责各种业务逻辑的实现。

2. DSP芯片为TI的5509,用来实现混音算法;

3. 音频AD/DA芯片,用于语音的输入和输出。

2.3 对外接口定义

2.3.1与前面板接口

    FPGA与前面板通过串口通信,NIOS与FPGA通过轮询管脚电平方式读取数据。

2.3.2与PC接口

    FPGA与上位机有两个接口,一个为串口通信,一个为网口通信。NIOS与FPGA之间通过轮询管脚电平方式读取数据。

   2.3.3与终端接口

    FPGA与终端通过网口通信。下行时,NIOS与FPGA通过2ms定时中断(FPGA提供)发送数据;上行时,通过轮询管脚电平方式读取数据。

 

2.4 FPGA系统功能框图


上图蓝色部分为FPGA编程实现的电路部分,NIOS II部分为SOPC创建的CPU内核以及其上运行的软件。

1.上位机 与中控机的通信接口为 UART 和 网口,串口和网口的通信功能由FPGA来实现,Nios 来实现对业务逻辑的控制;

2.终端 与中控机的通信接口为 PRSM Bus,PRSM的通信功能由FPGA来完成,Nios 来实现对业务逻辑的控制;

3.前面板 与中控机主板的通信接口为串口,通信功能由FPGA来完成,Nios 来实现对业务逻辑的控制;

4.中控机音频增益部分控制的通信接口为IO控制,通信功能和逻辑控制由Nios 来实现。

2.5软件系统框图


PRSM Bus 会议系统按照MVC架构划分如上图所示,最核心的中控机承担MODEL的角色

 

 

 

 

 

 

 

 

 

3 .Nios 软件系统架构

3.1软件预期

除中控机本身业务需求(报到,表决,发言等)外,还需注意如下几点:

 

首先PRSM Bus 会议系统是一个TDM在同一条线路中实现通信,两毫秒的时钟为一个节拍,所以Nios 软件与终端间的通信就要按两毫秒的节拍来;

 

其次,中控机有六个独立的通道,每个通道连接的最大设备为254台,六个通道相互独立,可以并行工作;

 

第三,在一个物理通道内,同一个两毫秒节拍内中控机只能下发一条通信数据,所以中控机下发任务是抢占式的,其中上位机下行的消息优先级最高,其次是前面板的消息,第三位的是终端的应答消息,最后是中控机的正常轮询任务;

 

第四,0区1号地址是特殊地址,可以用于连接唯一的主席机,脱机状态主席机可以进行简单的会议控制;

 

第五,上位机接口(网口,串口)以及前面板的串口都接收数据的时候都采用流式解析方式,即每收到一个字节都进入解析程序进行判断数据合法性;

3.2总体架构

Nios 软件整体上采用面向对象的思想,自顶向下各个类依次如下图:

 

Nios 软件分为三层,自底向上依次为:

a. 驱动层: 跟硬件BSP 直接相关,基于BSP层函数实现硬件驱动层接口;

b. 硬件抽象层:用于隔离业务层和驱动层,该层代码的功能是对硬件的操作,但是隐藏了硬件相关的细节;

c. 业务层: 主要用于实现 PRSM Bus 协议。

3.3数据结构

按照面向对象的思想进行代码编写,所以数据结构类似于上面的总体架构图,下面列举几个主要的数据结构:

1) 主结构体 FLX_CCU 

 

2) FLX_CCU_CAMERA

 

3) FLX_CCU_LCD

 

4) FLX_CCU_PC

 

5) FLX_CCU_TERMINAL

 

6) FLX_CCU_MANAGE

 

7) FLX_CCU_MANAGE_REGISTE

 

8) FLX_CCU_MANAGE_SPEAK

 

 

 

9) FLX_CCU_MANAGE_TERMINAL

 

10) FLX_CCU_MANAGE_VOTE 

3.4模块设计

3.4.1模块划分依据面向对象的思想,对象FLX_CCU ,包含五个对象

a. FLX_CCU_CAMERA,负责与集控主机进行通信,完成摄像联动;

b. FLX_CCU_LCD,负责与前面板进行通信,完成显示信息和设置参数;

c. FLX_CCU_PC,负责与上位机进行通信,完成会议相关的控制功能;

d. FLX_CCU_TERMINAL,负责与终端设备进行通信;

e. FLX_CCU_MANAGE,负责对系统(除上位机)的整体状态,功能进行管理;

这些子模块只完成基本的功能,例如 FLX_CCU_LCD ,完成基本收发数据功能,并且完成收发数据的基本处理(接收数据的包格式合法性判别,发送的数据按包格式打包),不处理业务,也就是不判断收发数据的内容。

注意,上图中的函数指针为对象的方法,需要向对待接口一样,将这些方法功能一一实现,否则会出现空指针的非法访问。

结构如下图:

3.4.2模块间通信

各个模块完成自己模块的功能,模块间通信(实际就是业务的处理)在子模块的上一层来完成,这样就保证了模块内部内聚性和模块间的低耦合性。

如图3.4.1的结构图,所有模块间的通信都是发生在业务层的最顶层对象内FLX_CCU,所以业务逻辑可以作为FLX_CCU 对象的方法。

如上图所示,共需要四个数据处理的方法:

1) 解析并响应上位机串口接收的数据;

2) 解析并响应上位机网口接收的数据;

3) 解析并响应前面板串口接收的数据;

4) 解析并响应终端设备PRSM Bus口接收的数据.

嵌入式软件架构设计----中控机NIOS软件系统架构设计说明书相关推荐

  1. 软件系统架构设计的六大原则

    软件系统架构设计的六大原则 1.单一职责原则(SRP) 2.开放封闭原则(OCP) 3.里氏替换原则(LSP) 4.最少知识原则(LKP) 5.接口隔离原则(ISP) 6.依赖倒置原则(DIP) 1. ...

  2. [转]应用软件系统架构设计的“七种武器”

    作者:张明星 出处: dev2dev.bea.com.cn       对于软件架构这一概念,有太多的版本,目前在业界由大师级人物或组织提出的对这一概念的阐述就超过十种以上,我个人比较赞同RUP(Ra ...

  3. 应用软件系统架构设计的“七种武器”

    对于软件架构这一概念,有太多的版本,目前在业界由大师级人物或组织提出的对这一概念的阐述就超过十种以上,我个人比较赞同RUP(Rational Unified Process)中对软件架构的定义,即软件 ...

  4. 转载:应用软件系统架构设计的“七种武器”

    本文章转载自:应用软件系统架构设计的"七种武器"(http://space.itpub.net/12639375/viewspace-167369) 在此向原作者本人表示感谢. ( ...

  5. 【转帖】应用软件系统架构设计的七种武器

    [意]:本文为转帖,纯属学习之用,如侵犯了您的权利,请通知本人立即删除 来源:http://biostar.blog.sohu.com/80149258.html 对于软件架构这一概念,有太多的版本, ...

  6. 京东云开发者|软件架构可视化及C4模型:架构设计不仅仅是UML

    软件系统架构设计的目标不在于设计本身,而在于架构设计意图的传达.图形化有助于在团队间进行高效的信息同步,但不同的图形化方式需要语义一致性和效率间实现平衡.C4模型通过不同的抽象层级来表达系统的静态结构 ...

  7. 架构设计三部曲之如何做架构设计

    架构设计不是架构师的专属工作,对非技术人员甚至是开发人员来说,从实实在在的需求到高神莫测的架构设计仿佛是一个神秘的过程,只有具有架构师头衔的人才能掌握各中玄妙,这篇文章就是从最基本的事物关系来回答如何 ...

  8. 上位机开发(架构设计)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 和一般的上位机开发相比,固件下载软件的流程是比较简单.清晰的.所谓的架构设计,一般都是从各种业务 ...

  9. 软件系统架构设计必须掌握的4步流程

    一. 识别系统复杂度 架构设计的本质目的是为了解决软件系统的复杂性,所以在我们设计架构时,首先就要分析系统的复杂性.只有正确分析出了系统的复杂性,后续的架构设计方案才不会偏离方向:否则,如果对系统的复 ...

最新文章

  1. APUE读书笔记-09进程关系(04)
  2. 【金三银四】java多线程并发编程pdf
  3. LeetCode Longest Absolute File Path(栈和前缀和解法)
  4. 将xap包嵌入到博客园中
  5. 用electron-forge创建一个项目
  6. 使用vuex 进行组件之间的通讯
  7. 部署在Netweaver应用上的Fiori缓存的调试
  8. XML学习(二)————属性还是标签?
  9. C语言实现简单计算器(可以处理小括号)
  10. 2G、3G即将退出群聊;全国携号转网就要实现了;5G商用列车已发车...
  11. DevExpress xtraTabbedMdiManager控件双击关闭MDI标签页
  12. html商城加减号,商城购物车的加减号控制商品数量
  13. 关于Webservice调试及小工具介绍
  14. java使用pdfbox将图片转换成pdf
  15. 一些PDG格式的Linux书籍(转)
  16. C语言删除数组中的重复元素(详细分析版)
  17. 数据分析师8大实用能力实战培养课程
  18. 【分享】集简云小程序识别名片到CRM流程搭建示例
  19. 将svn diff改成用vimdiff命令进行可视化差异显示
  20. ETL(大数据)测试实战篇(二)

热门文章

  1. 实现-超级课程表——校园登录(1)
  2. HTML---图像标签
  3. 雷克萨斯全球首发新纯电车型RZ;中国海油正式登陆A股 | 美通企业日报
  4. 国产嵌入式操作系统任重道远,未来着实可期!
  5. 使用IDA FLAIR生成SIG文件
  6. 笨鸟先飞之Java---缠缠绵绵的注解和注释
  7. 三层架构之业务逻辑层(BLL)
  8. UPS市场排名“第一”泛滥 三点绝招巧识猫腻
  9. 酒吧里最好玩的游戏有哪些
  10. 电视剧《我和我的儿女们》直击社会热点展现美好生活