Linux分布式环境下声音播放控制原型系统的设计
系统设计与开发计划

保持与相关利益方的沟通 ,及时反馈项目进展情况 ,共同推动项目进展。
资源需求计划
根据项目需求,确定所需 的人员、设备、物资等资 源类型和数量。
对资源需求进行动态调整 ,以满足项目变化的需要 。
对资源进行合理配置,确 保各阶段开发任务的顺利 完成。
制定资源采购和租赁计划 ,确保资源的及时供应和 成本控制。
观察法
通过观察用户的工作流程和操作习 惯,发现潜在的需求问题。
03
02
问卷调查
设计问卷并分发给相关用户,以收 集更广泛的需求意见。
原型评估
制作系统原型,让用户在实际操作 中提出反馈和建议。
04
需求分析
功能性需求
分析系统应具备的核心功能和业务流程。
非功能性需求
考虑性能、安全性、可用性等方面的要求。
约束条件
开发阶段划分
开发阶段
设计阶段
根据需求分析结果,进行系统架 构设计、数据库设计、界面设计 等,制定详细的设计方案。
依据设计文档,进行编码、测试 和集成工作,实现系统功能。
测试阶段
对系统进行功能测试、性能测试 和安全测试,确保系统稳定、可 靠。
需求分析阶段
明确系统的功能需求、性能需求 和用户界面需求,与用户进行充 分沟通,确保需求理解准确。
日常维护
定期检查系统运行状况,处理异常和故障,保持系统稳定运行。
版本控制
对系统进行版本控制,记录每次变更的内容和影响,便于回滚和升 级。
升级策略
制定系统升级计划,评估升级风险,确保升级过程顺利进行。
THANKS
感谢观看
制定验收流程
制定详细的验收流程,包括验收准备、验收测 试、问题处理和验收报告等环节。
Python中的微服务架构与分布式系统设计

分布式系统通过微服务架构可以实现服务的解耦和资源的优化
微服务架构强调服务的独立性和可扩展性
微服务架构与分布式系统的区别
微服务架构:将大型系统拆分为多个小型服务,每个服务独立运行,可以单独部署、更新和扩展。
分布式系统:将系统组件分布在多个节点上,以提高系统的性能、可靠性和可扩展性。
RabbitMQ:消息队列服务,用于异步通信和任务调度
ZooKeeper:分布式协调服务,用于集群管理和服务发现
Redis:内存数据库,用于缓存和分布式锁
Flask:轻量级Web框架,用于构建微服务应用
使用Celery实现分布式任务队列
03
配置Celery:设置Broker(消息代理)、Backend(结果存储)和Worker(任务执行者)
Flask简介:轻量级Web框架,适合开发微服务
Flask安装:通过pip安装Flask库
使用Django实现微服务
Django简介:Python Web框架,用于快速开发Web应用
示例:使用Django创建一个简单的微服务,包括路由、视图、模型等组件
Django与微服务:使用Django构建微服务,实现模块化和可扩展性
分布式系统的特点
异步性:任务处理时间不确定,需要处理异步任务和并发控制
安全性:数据分散存储,降低数据丢失风险
可扩展性:系统可以根据需要增加或减少节点
透明性:用户无需关心系统内部实现细节,只需关注接口和功能
并发性:多个节点同时处理任务,提高系统处理能力
容错性:单个节点故障不影响整个系统运行
分布式系统的优势
FastAPI:高性能Web框架,适合高并发微服务
LINUX系统下GPIB驱动优化设计与实现

NJIAJU5+3NI 函 数 来 申 请 中 断& 其 原 型'315NJIAJU5 + 3NI !A1U3Z1JP3153NI&YG3P !EF1PMJN"!3153NI&YG3PPJY+3P& U5NA0565+ NJZUNJZU"&A1U3Z1JPMG1ZXMFZU&0G1U50EFN PJY30J&YG3PPJY+3P"$参数3NI表 示 所 要 申 请 的 硬 件 中 断 号&EF1PMJN为向系统申请 的 中 断 服 务 程 序& 中 断 产 生 时 由
F/0123 字符设备驱动模型分析
;.<=> 字符设备驱动程序 一 ))* 般包括%部分'初始化( 中断服务(设备文件操作%在驱动程序初始化时&要向系 统注册此驱动程序&系统后续才能调用驱动里各设备文件 操作接 口% 在 ;31AB 系 统 里& 是 通 过 调 用 NJZ3U5JN+ 0ENPJY 向系统注册设备驱动程序&初始化部分除了注册设备驱动 程序&一般还需要给驱动程序 申请系统资源&包括内存( 时钟(.,- 端口等&芯片的初始化也在这里进 行&另 外还要
注销掉%对于设备 经 常 会 提 出 请 求 给 S8=& 来 执 行 设 备 需 存器进行正确设置&才能实现对 ?8.@ 的各 种操 作%工作模
要完成的操 作& 这 就 需 要 有 中 断 服 务&驱 动 程 序 通 过 调 用 式可分为单芯片模式和 7ANQG _ ((&+模式&工 作模 式的选
典型ii型系统设计方案

03
ii型系统设计方法
基于需求分析的设计方法
总结词
需求分析是一种从目标系统外部进行研究的分析方法,它关注的是理解系统应该完成的功能和任务, 以及这些功能和任务如何影响整个系统。
详细描述
基于需求分析的设计方法侧重于从系统外部收集需求,理解用户需求和业务需求,然后根据这些需求 来设计系统。这种方法可以帮助设计者更好地理解系统的需求,从而确保系统能够满足用户和业务的 需求。
系统性能优化策略
调整硬件配置
根据系统性能需求, 选用合适的硬件配置 ,包括处理器、内存 、存储等,提高系统 的整体性能。
优化数据库访问
通过索引优化、缓存 技术等手段,提高数 据库的访问速度和响 应能力。
代码优化
对核心代码进行优化 ,包括算法优化、逻 辑简化、代码重构等 ,提高程序运行效率 。
使用负载均衡
数据传输技术
01 网络传输协议
采用TCP/IP等网络传输协议,实现数据的高效传 输和可靠传输。
02 数据压缩
对数据进行压缩处理,以减小传输数据量,提高 数据传输效率。
03 数据加密
对数据进行加密处理,以保证数据传输的安全性 和机密性。
数据处理技术
01
02
03
分布式计算
利用多台服务器进行分布 式计算,以提高数据处理 效率和性能。
基于架构设计的设计方法
总结词
架构设计是将系统的结构、行为和组织方式进行详细描述的 过程,它关注的是系统的各个组成部分以及它们之间的相互 关系。
详细描述
基于架构设计的设计方法侧重于确定系统的各个组成部分, 以及它们之间的相互关系。这种方法可以帮助设计者确定系 统的结构、行为和组织方式,从而确保系统能够有效地实现 其目标。
嵌入式系统课程设计题目

嵌入式系统课程设计题目1.ARM系统在LED显示屏中的应用(利用ARM系统控制彩色LED显示屏)2.ARM-Linux 嵌入式系统在农业大棚中的应用(温度、湿度和二氧化碳浓度是影响棚栽农作物生长的3 大要素。
为了实现农业大棚中这3 种要素数据的远程实时采集,引入了当前嵌入式应用中较为成熟的ARM9 微处理器和Linux 嵌入式操作系统技术, 采用温度传感器PH100TMPA、湿度传感器HM1500 和二氧化碳浓度传感器NAP221A ,设计一种基于TCP/ IP 协议的嵌入式远程实时数据采集系统方案。
从硬件设计和软件实现2方面对该系统进行具体设计。
)3.ARM 嵌入式处理器在智能仪器中的应用(设计一种基于ARM 嵌入式处理器系统的智能仪器的硬件和软件设计方案, 并结合uc/o s2II或者Linux嵌入式实时操作系统, 给出一套完整的任务调度和管理的方法, 最后用实例说明)4.ARM系统在汽车制动性能测试系统中的应用(采用ARM系统构建一个路试法的汽车制动性能测试系统)5.ARM 嵌入式控制器在印染设备监控中的应用(针对拉幅热定型机,设计一种基于485 总线的分布式监控系统。
用ARM 嵌入式控制器实现主、从电机的同步运行和烘房温度的控制;在PC 机上用VB6. 0 设计转速和温度的监控画面;实现ARM、变频器和PC 机之间的数据通信。
)6.基于ARM系统的公交车多功能终端的设计(完成电子收费、报站、GPS定位等功能)7.基于ARM9的双CAN总线通信系统的设计(设计一种基于ARM9内核微处理器的双路CAN总线通信系统。
完成系统的总体结构、部分硬件的设计,系统嵌入式软件的设计,包括启动引导代码U - boot、嵌入式L inux - 操作系统内核、文件系统以及用户应用管理软件四个部分。
)8.基于ARM9 和Linux 的嵌入式打印终端系统(嵌入式平台上的打印终端的外围电路连接设计、嵌入式Linux 的打印机驱动程序开发和应用程序的开发)9.基于ARM 的车载GPS 终端软硬件的研究(重点研究基于ARM 的导航系统的软硬件设计)10.ARM系统在B超系统中的应用(完成系统软件硬件设计,包括外围电路)11.基于ARM 的嵌入式系统在机器人控制系统中应用(提出一种基于ARM、DSP 和arm-linux 的嵌入式机器人控制系统的设计方法, 完成控制系统的功能设计、结构设计、硬件设计、软件设计)12.基于ARM的视频采集系统设计(完成系统软件硬件设计,包括外围电路,采用USB接口的摄像头)13.基于ARM的高空爬壁机器人控制系统(构建一种经济型的爬壁机器人控制平台, 与上位机视觉定位和控制系统结合,使其适用于导航与定位、运动控制策略、多机器人系统体系结构与协作机制等领域。
系统架构设计师一本通-精华知识点

系统架构设计师一本通-精华知识点一、系统架构基础概念。
1. 架构定义与目标。
- 系统架构是对系统的组成结构、元素间关系、系统与环境间关系等的高层次描述。
其目标包括满足功能需求、非功能需求(如性能、可靠性等),并为系统的演进提供框架。
- 例如,企业级信息系统架构需要考虑不同业务模块间的数据交互、用户访问权限管理等多方面因素。
2. 架构视图。
- 逻辑视图:描述系统的功能组件及其关系,关注系统的功能需求。
如电商系统中用户管理、商品管理、订单处理等功能模块的逻辑关系。
- 物理视图:涉及系统的硬件、软件在物理环境中的部署。
例如,服务器的分布、网络设备的连接等。
- 开发视图:着眼于软件开发过程中的模块划分、代码结构等。
对于大型软件项目,合理的开发视图有助于提高代码的可维护性和开发效率。
- 进程视图:主要针对系统运行时的进程、线程等的交互与调度。
在多用户并发访问的系统中,进程视图能帮助优化资源分配和提高响应速度。
3. 架构风格。
- 分层架构:将系统按照功能层次进行划分,如常见的三层架构(表示层、业务逻辑层、数据访问层)。
每层有明确的职责,层与层之间通过接口进行通信。
这种风格提高了系统的可维护性和可扩展性。
- 微服务架构:将系统拆分为多个小型、独立的服务,每个服务都可以独立开发、部署和扩展。
例如,在电商系统中,用户服务、商品服务、支付服务等微服务可以根据业务需求灵活组合和演进。
- 事件驱动架构:基于事件的产生和处理构建系统。
在物联网系统中,传感器产生的事件可以触发相应的处理逻辑,如温度传感器检测到异常温度后触发报警机制。
二、需求工程。
1. 需求获取。
- 与用户、利益相关者进行沟通,采用的方法包括访谈、问卷调查、观察等。
例如,开发医疗信息系统时,通过与医生、护士、患者等不同角色的访谈,获取他们对系统功能和操作流程的需求。
- 收集业务流程、规则等信息。
对于金融系统,需要深入了解各种金融业务的交易规则、风险控制流程等需求。
系统设计方法有哪些
系统设计方法有哪些
系统设计方法有以下几种:
1. 需求分析:通过调查研究、需求梳理等方法,明确系统的具体需求和目标。
2. 数据流程图:通过绘制数据流程图,展示系统内部各个功能模块之间的数据流动和处理流程。
3. 系统原型设计:通过制作系统的原型,模拟系统的功能和界面,以便用户和开发者更好地理解和确认系统的设计。
4. 结构化设计方法:通过将系统拆分为多个不同功能的模块,并制定模块之间的接口和交互规范,实现系统的高内聚、低耦合。
5. 面向对象设计方法:通过将系统设计为由多个对象组成的系统,利用面向对象的思想,实现系统的封装、继承、多态等特性。
6. 数据库设计:通过设计数据库的表结构、数据存储方式等,实现系统对数据的存储和操作。
7. 网络通信设计:对于分布式系统,需要进行网络通信的设计,包括协议约定、消息传输等相关内容。
8. 安全设计:对于安全性要求较高的系统,需要进行安全设计,包括权限控制、数据加密、防止攻击等。
9. 性能优化设计:对于大型系统或者需要高并发、低延迟的系统,需要进行性能优化的设计,包括负载均衡、数据库优化、缓存技术等。
10. 用户界面设计:通过设计用户界面,使系统的操作更加友好和便捷。
以上是常用的系统设计方法,实际项目中一般会综合运用多种方法来完成系统的设计。
基于RTW和Linux的快速控制原型技术研究
基于RTW和Linux的快速控制原型技术研究董哲;刘宁勇;孙德辉【摘要】The Rapid Controller Prototyping Platform, which is matched well with MATLAB/Simulink, is established with Real -Time - Workshop (RTW) and Linux. Studying the code generation automatically with RTW and the communications of interface in the target controller, achieving the executable code one - key generation and the Master/Slave function with modbus rtu/tcp communication protocol of target controller; the rapid controller prototyping platform has been used in device of process controlling with algorithm and communication protocol studying.%建立了基于RTW和linux的快速控制原型技术研究平台,实现了该平台与MATLAB/Simulink图形化建模环境的无缝连接;对RTW代码自动生成、目标平台接口通信应用等作了详细研究,最终实现了宿主机到目标机可执行代码的一键生成以及目标机基于modbus rtu/tcp通信协议的主、从站功能;该快速控制原型平台现已成功用于实验室过程控制实验装置的算法和相关通信协议研究.【期刊名称】《计算机测量与控制》【年(卷),期】2012(020)009【总页数】5页(P2420-2421,2424-2425,2428)【关键词】Real-Time-Workshop;代码自动生成;S函数;快速原型控制【作者】董哲;刘宁勇;孙德辉【作者单位】北方工业大学机电工程学院,北京 100144;北方工业大学机电工程学院,北京 100144;北方工业大学机电工程学院,北京 100144【正文语种】中文【中图分类】TP3010 引言基于RTW技术的xpc目标已被广泛用于快速控制原型设计和硬件在回路仿真,是控制算法研究以及产品性能测试的一个优秀平台,由于MathWorks公司没有对外提供xpc实时内核细节,用户在使用过程中会受到一些限制,因此,一个目标内核完全开源的快速控制原型平台能向用户提供更多的功能,同时可以使用户在开发应用程序时思路更加清晰,使用更加自由。
智慧校园原型系统实现设计方案
智慧校园原型系统实现设计方案智慧校园原型系统是一个整合了多种技术和功能的教育管理平台,旨在提高学校教育教学效率、优化学校管理和服务,为师生提供更便捷、高效的教育资源和学习环境。
下面是一个智慧校园原型系统的实现设计方案。
一、需求分析智慧校园原型系统的主要功能需求包括:1. 学生信息管理:包括学生注册、录取、选课、成绩查询等功能;2. 教师信息管理:包括教师注册、上课时间表、考勤、成绩录入等功能;3. 教学资源管理:包括教材、试卷、教学视频等教学资源的管理和共享;4. 教学过程管理:包括在线作业、课堂互动、在线答疑等教学过程的管理和支持;5. 学生学业辅导:包括选课指导、学习计划辅导、课程评价等功能;6. 学生就业服务:包括实习就业信息发布、求职辅导、企业招聘信息管理等功能;7. 后勤管理:包括图书馆借阅管理、宿舍管理、食堂预定等功能;8. 校园安全管理:包括校园安全监控、紧急通知发布等功能。
二、系统设计1. 技术架构:采用分布式架构设计,前端使用 React 或 Vue.js 框架开发,后端使用Spring Boot 进行开发,数据库采用MySQL 或者其他关系型数据库。
2. 学生信息管理:学生信息管理模块包括学生注册、录取、选课、成绩查询等功能。
学生注册时需要提供基本个人信息,并上传相关材料。
录取时,系统根据学校的招生政策进行录取处理。
选课功能支持学生在线选课,查询功能支持学生查询自己的成绩和选课情况。
3. 教师信息管理:教师信息管理模块包括教师注册、上课时间表、考勤、成绩录入等功能。
教师注册时需要提供个人信息,系统会自动生成教师的工号。
上课时间表用于安排教师的授课时间。
考勤功能是教师进行签到,系统会记录教师的上课情况。
成绩录入功能支持教师将学生成绩录入系统。
4. 教学资源管理:教学资源管理模块包括教材、试卷、教学视频等教学资源的管理和共享。
教师可以上传教学资源,学生可以在线浏览和下载。
5. 教学过程管理:教学过程管理模块包括在线作业、课堂互动、在线答疑等教学过程的管理和支持。
软件概要设计说明书模板
****项目概要设计说明书编制:日期:审核:日期:批准:日期:XXXX公司文档修订记录目录1.引言 (1)1.1文档目的 (1)1.2参考资料 (1)1.3术语定义 (1)2.任务概述 (1)2.1需求概述 (1)2.2运行环境 (2)2.3条件与限制 (2)3.设计思想 (2)3.1设计原则 (2)3.2技术路线 (3)3.3设计方法 (3)4.功能架构 (3)5.技术架构 (3)6.网络(部署)架构 (4)7.外部接口设计 (4)8.内部接口概要设计 (4)9.数据模型概要设计 (4)10.运行设计 (4)10.1运行模块的组合 (4)10.2运行控制 (4)10.3运行时间 (5)11.出错处理设计 (5)11.1出错输出信息 (5)11.2出错处理对策 (5)12.质量属性设计 (5)12.1易用性设计 (5)12.2可靠性设计 (5)12.3效率性设计 (6)12.4兼容性设计 (6)12.5安全性设计 (6)12.5.1应用安全 (6)12.5.2数据安全 (6)12.5.3外部安全 (7)13.维护设计 (7)1.引言1.1文档目的阐明编写概要设计说明书的目的,指明读者对象。
本文档定义了本系统应该完成的主要任务、系统总体设计、系统接口设计、数据结构设计、运行设计等内容。
本文档的预期读者包括甲方项目组相关人员、乙方项目组成员(包括项目经理、程序员、市场相关人员等)、监理方相关人员,以及其他与本项目建设相关的人员。
1.2参考资料本小节应完整列出此概要设计说明书中其他部分所引用的任何文档。
列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括:项目经核准的计划任务书、合同或上级机关的批文;项目开发计划;需求规格说明书;文档所引用的资料、采用的标准或规范。
1.3术语定义本小节列出本文档中所用到的专门术语的定义和缩写词的原文。
2.任务概述2.1需求概述简要描述需求,说明本设计主要针对的设计任务来源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 总体设计
采用硬件建立声音实验系统是较为常见的方式 , 因为用硬件实现不仅处理速度快 , 而且平台规模小 , 重 要的是保证了实验的精度 , 缺点是要求特定的芯片、 仪器、硬件平台或者设计专用电路 , 并且上位机和下位 机之间的数据传递和命令控制往往是单向的。
本文于 2007- 7- 12 收到。 * 基金项目 : 辽宁省教育厅科研基金资助项目 ( 编号 : 05L209 ) 、 辽宁省科技基金项目 ( 编号 : 1050286) 。
图 5 声音序列矩阵模型
44
微
计
算 机
应
用
2008年
际中可能还受到一些条件限制 , 如 C 必须在 L ~ Y 之间 , 或不能在某个具体位置出现, 或只能出现一次至几 次。在 DSPC 系统中我们使用了随机函数 srand( )和 rand( )解决了随机矩阵的产生。 srand( ) 生成随机数的 种子, rand( )产生随机数。 2 . 3 声卡编程 在 L inux 下, 音频设备以文件形式进行管理, 对设备文件 / dev / dsp 操作即可完成对声卡进行播放控制。 控制设备发声主要进行步骤: 打开音频设备; 设置播放参数 : 音频格式、 通道数量、 采样频率等; 将音 频读入缓冲区; 从缓冲区读入声卡 ; 关闭声卡。 DSPC 系统目前采用波形文件 ( 即 w av) , 具体格式在此不作细致分析。采用此格式文件的原因是其编码 质量高 , 对实验有益。所需的存储空间相对其他音频文件大 , 但是在声音实验中要求的音频文件一般很小 , 存储空间的开稍不会很大 , 受控机的磁盘空间完全可以满足要求。 波形文件声音数据大小 (字节数 ) 和播放时间存在函数关系: 存储量 = ( 采样频率 采样位数 声道 ) 时间 / 8 。如果要求播放固定时间的声音, 那么控制缓冲区的音频数据的大小就可以控制播放时间了。 对声卡操作的系统调用主要有 open( ), ioctl( ) , w rite( ) , 它们是 L inux 下对硬件编程和驱动程序提供的 重要接口。 open( ) 、 w rite( ) 是常用函数, 而对于 ioct l( ) 函数 , 通过它可以控制声卡行为。其函数原型是 vo id ioct l( in t fd , in t c md , . . . ) , fd 是声卡文件标识, c m d 是传入的控制命令码, 通过它设置声卡播放波形文件的 行为参量。具体情形下还要对声卡进行检测, 以得到更加有效的支持。 2 . 4 主控机与受控机的通信 主控机与受控机之间的通信通过建立 TCP / IP 套接字完成。考虑到软件的可扩展性, DSPC 系统设计了 统一的命令接口。所有命令有统一的格式 , 通过命令名进行区分。命令格式 : 命令字 + 附加参数。格式把 所有命令统一起来, 命令字指示受控机执行相应动作, 附加信息负责传递其他参数。每个受控机端建立一 个服务 , 等待主控机发送来的命令, 通过 sw itch 语句判断该命令 , 并在某个分支执行。例如主控机分发声音 矩阵时 , 在拆分打包后 , 首先发送 分发 命令到各个受控机。受控机判断接收到的命令 , 准备接收声音播放 序列, 在接收矩阵数据时会进行一定的校验, 保存到本地缓冲区, 以备主控机发送 播放 命令时播放。
116029 2 辽宁师范大学教育学院
大连
116029 )
摘要 : F edora Core 3 L inux 分布式环境下 , 利用 TCP / IP套接字技术 , 在网络时间 服务和网 络文件系统 的基础上 , 设计开 发了一 个声音播放控制原型系统 DSPC。测试结果表明系统达到了一般 声音实验要求的精度 , 在医 学、 声 学、 心理 学实验方面 有一定 意义和作用。 关键词 : 播放控制 波形文件 声卡编程 TCP / IP 套 接字 C / S模式 NTP NFS
图 1 系统体系结构
图 2 软件结构图
图 3 系统工作原理图
主控机与受控机之间通过统一的命令接口通信 , 主控机生成并传送命令 , 受控机解析且执行相应命令。 统一的命令接口增加了软件的可扩展性。为了减少主控机与受控机之间的数据传输和加快整体播放速度 , 一方面 , 在每台机器上均建立了相同的音频数据库, 并为音频文件建立索引, 播放声音时 , 主控机向受控机 传递的只是索引值。另一方面 , NFS 服务为系统机器之间提供了方便的数据交换, 分散的实验数据通过 NFS 共享目录直接集中到主控机上。 NTP 服务统一了全局时间 , 使各个机器的动作执行有了时间参照。图形界 面的设计将系统的各个部分有机的整合起来, 使人机交互界面更加友好 , 并可向内部程序传递定制参数。
42
微
计
算 机
应
用
2008年
DSPC 系统采用软件方式实现 , 在五台 P 计算机上安装 F edora Core 3 L in ux 操作系统, 并搭建分布式环境 , 每台计算 机均配备扬声器 , 共用一台显示器 , 一套键盘鼠标, 一个集线 器。系统体系结构如图 1所示。 本系统的物理结构属于星型 , 一台计算机集中控制, 称为 主控机 , 另外四台接受控制 , 称为受控机。系统的逻辑结构是 C /S 主从结构, 主控机与受控机通过 TCP / IP套接字通信。主 控机负责生成全局数据和采集实验生成数据 , 受控机运行一 个开机自启动的服务 , 负责接受主控机命令, 播放声音并向主 控机反馈, 以及配合主控机完成系统测试和数据统计。系统 的软件结构及工作原理如图 2 、 图 3 所示。
第 29 卷第 1 期 2008 年 1 月
微 计 算 机 应 用 M ICROCOM PUTER APPL I CAT I ONS
V ol 29 N o 1 Jan 2008
L inux分布式环境下声音播放控制原型系统的设计
郑晓薇
1
*
阴元友
大连
1
朱会明
2
刘青昆
1
( 1 辽宁师范大学计算机与信息技术学院
D esign of Sound P laying Control System Based on L inux D istributed Environm ent
ZH ENG X iaow e i1, Y IN Yuanyou1, ZHU H ui m ing2, L I U Q ingkun1
( 1 College o f Computer and Infor m ation T echno logy , L iaon ing N o r ma lU n ive rs ity , D a lian, 116029, Ch ina , 2 College o f educa tion , L iaoning N or m a lU n iversity , D alian, 116029 , Ch ina) Abstrac t : In the F edora Co re 3 L inux d istributed env ironm ent , m aking use o f TCP /IP socket w ith netw ork ti m e serv ice and N FS, de signed and partly realized a sound play ing con tro l system pro totype . T he results o f test indica te that the sy stem atta in the accuracy of genera l sound experi m ent dem anding , the re is certa in m ean ing and functions to experi m ent o fm edicine , acoustics and psycho logy . K eywords : play ing contro,l wav for m at file , sound card progra m, TCP / IP socket , C /S m ode , N FS, NTP
在科学实验中有关声音的实验不断复杂化。医学上, 实验对患者或胎儿进行特殊的声音刺激, 采用磁 带录制处理过的声音 , 用录音机播放 [ 1] ; 声学实验上用扬声器阵列进行指向性、 叠加实验 [ 2] ; 听觉心理学言 语识别实验中, 利用两个扬声器先后分别播放目标言语声音和掩蔽声音 , 研究汉语信息掩蔽效应 [ 3] 。 这些实验都需要对声音进行播放控制 , 实验的逐渐复杂化对计算机及软件的依赖程度大大提高。声音 定位测听系统可判别及评价人耳声音空间定位能力 , 初步实验和临床验证 , 取得了较好的测试结果 [ 4] ; 多声 道声音播放控制系统采用 51 系列 AT89C51 单片机以及外围电路配合上位机 , 控制若干扬声器发声 , 对于医 学人体器官发声模拟有一定意义和作用 。 我们在 L inux 分布式环境下设计了声音播放控制的原型系统 DSPC, 具有一定的可扩展性、 灵活性和通 用性。
图 4 网络及本地区延迟示意图
目录下 , 由受控机端程序读取并进行延时操作 , 从而屏蔽了先后发送、 网络延迟和本机差异。如果需要各个 受控机依次播放声音 , 只需在相应延时值的基础上加上间隔时间即可。通过多次通信 , 除获取了平均延时 时间外 , 也对网络的稳定性进行了测试。 在延时方法上, 使用 usleep( ) 函数。 L inux2 . 6 版本以上的内核时钟频率提高到了 1000H z, 当延时时间 大于 100us时 , 能够保证使用 usleep( ) 延时的精度。实际受控机的延时时间在 1000us即 1m s以上 , 所以用 usleep( ) 延时是完全满足要求的。如果需要更精确的延时, 可以使用汇编语言的 nop 指令, 可达到微秒级的 精度。 在控制同步播放的同时也使系统具备了一定的网络自适应能力, 上述方法屏蔽了网络延迟及网络内机 器处理能力的差异, 使系统能够适应不同的局域网络, 或在网络调整及规模变化时, 无需对系统进行调整。 2 . 2 声音播放序列的生成 各种实验要求的声音环境 , 都只是扬声器布置上的差异 : 线性、 环形、 点阵式或者是立体的, 实质上都是 扬声器 ( 或受控机 ) 物理位置的变动。但对系统来说 , 都是一样的, 它不关心扬声器的位置 ( 即与位置无关 ) 。 每个扬声器可发出单个声音或一组声音, 多个扬声器发出的声音可以用矩阵表示。集中考虑一个矩阵要比 单独考虑每个扬声器方便一些 , 并且扬声器与扬声器之间播放的声音有时存在相互制约或依赖的关系 , 因 此有必要将其统一到一个矩阵上来, 在主控机上集中产生。我们抽象出的矩阵模型具有两个要素: 声音和 时间间隔。矩阵描述如图 5 所示。 声音中具有代表性的是英文字母、 阿拉伯数字、 汉字等 , 本 矩阵元素也选用这些参数。矩阵的每个元素是音频文件名的索 引值。矩阵的每一列对应着一个扬声器的播放序列, 而每个扬 声器的播放序列有可能各不相同; 矩阵的行数参照播放文件最 多的扬声器。生成矩阵的过程是按照实验要求在主控机端生成 音频文件的索引值, 传递到受控机端。每台机器都有相同的声 音文件和一张相同的索引表。 在有些实验中常常需要产生一个满足某种要求的声音随机 播放序列, 如图 5 中的 C (英文字母的发声 ) 。 C 本身可能是随 机产生的, 它在某个扬声器的播放序列位置上也可能是随机的。 再如图 5 中的 R, 表示声音之间的间隔 , 是大于零的某个值。矩 阵中的这些值都需要随机产生 , 但是这种随机并不是随意, 在实