基于CAN总线的语音节点设计方案
- 格式:docx
- 大小:391.42 KB
- 文档页数:11
毕业设计设计题目:基于CAN总线节点通信的设计与实现系别:计算机科学与技术系班级:06计本1班姓名:指导教师:2012年6月* 日基于CAN总线节点通信的设计与实现摘要本设计是基于CAN总线节点的网络通信。
设计的硬件用到了ARM处理器,CAN 总线模块(主要有控制器MCPC2510,收发器82C250等),PC机,虚拟机。
设计实现了用ARM处理器通过SPI串口总线[1]将信息发送各给CAN总线,利用芯片MCP2510作为控制器控制收发器采集CAN总线上的信息,然后通过设置好的CAN 总线模块的自回环模式实现将采集到的信息自收自发。
ARM处理器会通过TCP协议,CAN总线是一种新兴的现场总线[2],短短时间内就成为了国际上应用最广泛的现场总线之一,其成本低,能耗小,稳定性高,抗干扰强,传输速度快,传输距离远。
被广大的技术人员所喜爱。
CAN总线开始只是应用于汽车行业,后来由于其众多的优点被逐渐拓展到各个领域,广为人们认知和应用。
TCP同UDP协议一样属于运输层协议。
不同的是它是基于字节流的,是一种面向连接的,可靠的通信协议。
TCP协议通过三个报文段完成连接的建立,这个过程称为三次握手。
TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算和校验。
本设计采用了TCP协议就是因为它的可靠性。
套接字(Socket)是为了在多个TCP连接或多个应用程序进程需要通过同一个TCP协议端口传输数据时,为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供的接口。
关键词:CAN总线,MCP2510,TCP协议,虚拟机。
Based on the CAN bus communication designand ImplementationAbstractThe design is based on CAN bus network communication. Design of the hardware used in the ARM processor, CAN bus module ( the main controller MCPC2510, transceiver82C250, PC machine, a virtual machine ).Design and implementation of a ARM processor through the SPI serial bus to send information to the CAN bus, using chip MCP2510 as the controller controls the transceiver to collect the information of the CAN bus, and then through the set of CAN bus module self loopback mode to achieve the information collected since the resumption of spontaneous. The ARM processor via the TCP protocol,CAN bus is a new kind of field bus, a short time has become the international most widely used one of the field bus, its low cost, low energy consumption, high stability, strong interference resistance, high transmission speed, the transmission distance. The vast majority of technical staff favorite. CAN bus is used in the automotive industry, and later because of its numerous advantages are gradually extended to various fields widely, cognition and application.TCP and UDP protocol as a transport layer protocol. Different is that it is based on a stream of bytes, is a connection-oriented, reliable communication protocol. The TCP protocol through the three message segment linking the establishment, this process is called the three handshake. TCP uses a checksum function to test whether there is an error in the data; sending and receiving are the calculation and validation. This design uses the TCP protocol because of its reliability.Socket ( Socket ) to a TCP connection or a plurality of application process through the same TCP protocol port data transfer, in order to distinguish the different application processes and connections, many computer operating system to the application and the TCP / IP protocol interaction interface.Key words: CAN bus, MCP2510, TCP protocol, virtual machine目录1绪论 (2)1.1 can总线概述: (2)2.2 套接字Socket概述: (3)2 CAN总线原理基础 (4)2.1 CAN总线发展史 (4)2.2 CAN总线的优势 (4)2.3 CAN总线的电气特点 (5)2.4 can总线的MAC帧结构 (6)2.5 can控制器MCP2510简介 (6)3 linux网络编程基础 (10)3.1 linux简介 (10)3.2 TCP/IP协议 (10)3.2.1 TPC/IP简介 (10)3.2.2 TCP和UDP简介 (11)3.2.3 三次握手 (12)3.3 socket套接字 (13)3.3.1 socket简介 (13)3.3.2 Socket套接字主要类型 (14)3.3.3 套接字的使用步骤 (14)4系统的设计 (17)4.1 系统的总体设计概述 (17)5系统各部分的详细设计 (18)5.1 超级终端的建立 (18)5.2 CAN模块详细设计 (18)5.2.1 can的初始化 (18)5.2.2 CAN数据接收 (20)5.2.3 CAN数据发送 (21)5.2.4 CAN总线数据的自发自收 (23)5.3 TCP协议网络传输详细设计: (25)5.3.1 ARM目标板服务器的设计 (25)5.3.2 虚拟机客户端的设计 (27)6系统测试 (30)6.1 CAN自发自收的测试 (30)6.2 TCP协议通信测试 (30)6.3 总体测试 (30)7 结束语 (31)谢辞 (32)参考文献 (33)附录 (34)外文资料 (40)中文翻译 (46)1绪论1.1 can总线概述:随着人们生活水平的不断进步,科学技术的不断创新发展,导致了自动化系统的深刻变革。
基于CAN通信的卡车语音报警器的设计汽车诊断技术是汽车安全技术中不可缺少的一部分,它能在汽车发生故障时及时地进行语音报警,避免事故的发生。
CAN即控制器局域网,是国际上应用最广泛的现场总线之一。
由于CAN总线技术的优良特性,在汽车电气系统以及其他一些实时控制单元中得到广泛应用。
一种基于CAN总线的通信网络具有速度高、抗噪性强及通用性好等优点。
我们设计的基于CAN总线技术的卡车语音报警系统能给汽车乘员提供一个安全的驾乘环境。
该语音报警系统采用了摩托罗拉公司的M68HC908GZ16微控制器,该微控制器尺寸小,资源齐全,具有很高的性价比。
CAN总线位定时CAN总线采用同步串行通信方式,数据流中的字符与字符之间、字符内部的位与位之间都同步,这就要求收/发双方必须以同步时钟来控制数据的发送和接收。
要在相当长的数据流中保持位同步,接收端必须能识别每个二进制位是从什么时刻开始的,这就是位定时。
通常为保证接收器时钟和发送器时钟严格一致,采用接收器通过解调器从数据流中提取同步信号,或者接收器和发送器使用统一的时钟的方法。
但是即便这样,仍然很难解决总线传输延时问题。
针对以上问题,CAN 总线的位定时改进了位编码/解码。
CAN总线位定时由4部分组成:同步段(SYNC_SEG)、传播段(PROP_SEG)、相位段1(PHASE_SEG1)和相位段2(PHASE_SEG2)。
同步段用于同步总线上的各节点,在此段等待一个跳边沿;传播段用于补偿网络内的物理延迟时间;相位段1及相位段2用做补偿相位误差。
在采样点读总线电平。
M68HC908GZ16微控制器中内置CAN控制器,提供了波特率控制寄存器;SJW (重同步跳转宽度)决定了一次重同步期间一个位时间被延长或缩短的时间量子;BRP为波特率预分频系数;Spl(采样模式位)决定对有效位采样的次数。
位定时主要用于定义CAN总线通信的速率,对同一总线上的各个节点应定义同一种通信速率,否则无法进行通信联系。
基于CAN总线的多节点语音通信系统设计在实际工作现场,常常需要在一个非常恶劣的环境中进行通话,随着CAN总线在工业生产的应用越来越广泛,想到了把CAN总线应用于电话通信上来。
CAN 总线具有极高的总线利用率,这有可能使得我们只需要用两根CAN总线,就可以把需要通话的节点电话连接起来,从而实现语音通信。
本文主要论述了基于CAN总线的多节点语音通信系统设计。
该系统使用MC14LC5480作为语音采集编解码器,AT90CNN128作为处理器,使用处理器自带的CAN模块实现多个CAN节点间的通信,最终达到实现多节点间语音通信的功能。
本文的前半部分介绍了CAN总线技术和语音信号的数字处理技术,评价了用CAN总线传输语音信号的优点。
本文后半部分详细介绍了该系统的硬件结构和软件设计,通过分析系统所涉及的芯片对该系统的各个功能模块做了详细的说明,包括语音编解码电路,语音数字信号处理电路,CAN总线传输电路等。
通过该系统,能够实现在实验室条件下多个CAN节点间的语音通信。
基于CAN总线的多节点语音通信系统设计随着科技的发展,语音通信在我们的日常生活中起着越来越重要的作用。
为了满足多节点之间的语音通信需求,本文设计了一种基于CAN总线的多节点语音通信系统。
首先,我们需要了解CAN总线的特点。
CAN(Controller Area Network)总线是一种高度可靠的实时通信协议,广泛应用于汽车、工业控制等领域。
它具有高带宽、低延迟和可靠性强的特点,非常适合用于多节点语音通信系统。
在设计多节点语音通信系统时,我们需要考虑以下几个方面。
首先是节点之间的通信方式。
基于CAN总线的多节点语音通信系统可以采用点对点通信方式,即每个节点都可以直接与其他节点进行通信。
这样一来,每个节点都能够实时地接收和发送语音数据,实现实时的语音通信。
其次是语音数据传输的方式。
在多节点语音通信系统中,语音数据需要通过CAN总线进行传输。
为了确保数据的实时性和可靠性,我们可以采用分时复用的方式,即将语音数据分为多个小包进行传输,每个节点按照预定的时间片轮流发送和接收数据。
这样一来,即使在多节点同时发送数据的情况下,也能够保证数据的传输效率和可靠性。
最后是节点之间的数据处理和控制。
在多节点语音通信系统中,每个节点都需要对接收到的语音数据进行处理和控制。
可以使用数字信号处理技术对语音数据进行降噪、增益等处理,以提高语音通信的质量。
同时,每个节点还需要实现相应的控制逻辑,以实现语音通信的功能,例如呼叫、接听等。
综上所述,基于CAN总线的多节点语音通信系统设计具有高带宽、低延迟和可靠性强的特点,非常适合应用于实时语音通信场景。
通过合理的节点通信方式、语音数据传输方式以及节点数据处理和控制,可以实现实时的多节点语音通信。
这种系统设计在汽车、工业控制等领域具有广阔的应用前景,将为我们的生活带来更加便利和高效的语音通信体验。
基于CAN总线的语音通信系统
随着现场总线技术的发展,CAN总线作为比较有前途的现场总线之一,越来越受到科技工作者的关注。
在工业现场、交通、电力系统等调度环境中,常常需要语音通信监控系统,而大多数语音通信系统由传统的电路交换技术及公众交换电话网(PSTN)实现。
随着现场总线的发展与技术的成熟,CAN总线在工业生产的应用越来越广泛,CAN总线也显现出强大的优势。
本文介绍的是一个基于CAN总线的语音通信系统的硬件电路设计,探索CAN总线在实时语音数据传输领域的应用。
文章主要论述了一个基于CAN总线的语音通信系统的软硬件设计。
该系统使用摩托罗拉公司的MC14LC5480作为语音采集编解码器,AT89C55为处理器,通
过CAN总线的PELICAN模式实现通信功能。
系统主要目的是能够实现CAN总线上的语音信号的传输,最终能够实现多节点间的语音通信功能。
本文的前半部分介绍了语音编码技术和CAN总线的通信网络。
评价语音信号用于CAN总线传输的优点,分析摩托罗拉公司生产的一款通用单信道PCM编码解码器滤波器MC14LC5480的性能,用于该系统的语音采样率等问题。
文章后半部分详细分析了基于CAN总线的语音通信系统的软硬件技术,通过分析系统所涉及的芯片对该方案分功能模块做了详细的说明,包括语音编解码电路,数字信号处理电路,CAN总线传输电路等。
基于CAN总线的汽车语音功能设计实现冯世杰,刘鹏飞,靳兵(海马汽车有限公司,河南郑州450016)摘要:汽车智能化网联化的快速发展,使汽车成为了移动智能空间和场景服务的体验终端。
车载主机作为智能座舱人机交互的主控制器,集成了越来越多的车载功能。
日趋复杂的功能和界面形成了对驾驶员注意力的争夺,而车载语音技术以其独特的优势帮助驾驶员降低对车内设备的操作,增加车辆驾驶。
CAN总线技术作为目泛的车载通信技术,为汽车语音功能的设计提供信号传输技术。
关键词:智能汽车;语音;CAN;车载通信中图分类号:U463.6文献标志码:A文章编号:1003-8639(2020)09-0006-04Design and Implementation of Automobile Voice Function Based on CAN BusFENG Shi-jie,LIU Peng-fei,JIN Bing(Haima Automobile Co.,Ltd.,Zhengzhou450016,China)Abstract:With the rapid development of intelligence and networking vehicles,the vehicle is becoming an experience terminal of mobile intelligent space and the scenarios based service.As a master controller of intelligent cockpit and HCI(Human-Computer Interaction),more and more functions were integrated on vehicle mainframe,the driver is easily distracted by the increasing complex functions and interface,but the technology of in-vehicle automatic speech recognition can help the driver reduce their dependence on the vehicle-mounted equipment by its special advantage,and it is helpful to increase the safe driving.As one of the most widely used international vehicle communicationtechnologies,CAN-bus technology provides a signal transmission technologyfor the design of speech recognition.Key words:intelligent vehicle;speech recognition;CAN-bus;vehiclecommunication冯世杰(1987-),男,硕士,从事整车网络通信系统设计开发;刘鹏飞(1993-),男,从事整车网络通信系统设计开发;靳兵(1994-),男,硕士,从事整车网络通信系统设计开发。
基于CAN总线的语音节点设计方案2011年09月18日 16:26来源:本站整理作者:网络我要评论(0)文章针对现有的模拟广播系统存在抗干扰能力弱、传输距离短等不足,进行了基于CAN 总线的数字语音通信系统的研究。
给出语音通信系统的总体构成,并对节点各模块进行详细设计。
核心部分采用内置CAN 控制器PIC18F458 单片机作为控制器,与独立的CAN 收发器CTM8251 构成CAN 收发模块;采用低传输速率和高通话质量的AMBE-1000 芯片作为语音编码器。
测试表明,节点间可以实现可靠,语音质量高的实时性通信。
引言CAN 总线以其短帧、无损仲裁、多主工作方式、干扰能力强而应用于许多工业领域,如汽车行业、煤矿安监系统、智能仪表系统等。
基于CAN 总线的数字语音通信系统就是利用CAN 总线的特点而设计的。
利用该系统调度室可以在同一时间内通知矿井中的所有工作人员安全撤离,并按照矿井应急预案指挥抢险救灾;井下人员也可以及时与调度室联系,及时通报情况;井下也具有局部通信功能,方便井下人员直接的联系和通报事情。
1 语音通信系统的总体结构基于 CAN 总线的语音通信系统的整体结构如图1 所示。
图 1 系统总体框架图该系统由上位机PC、网关节点、语音节点、通信电缆、终端等构成,采用总线型网络、多主访问机制。
地面可以通过上位机PC 对网关节点进行操作,实现对井下各个语音节点的任意呼叫(即点播方式)、各个组的语音节点的呼叫(即组播方式)或全部呼叫(即广播方式)功能;井下各个语音节点也可以呼叫网关节点,网关节点将该语音节点的ID 上传给上位机PC;并且井下各个语音节点可与其它同组的语音节点进行组内通话通信。
在CAN 总线结构中,节点是可以灵活接入的,这是CAN 总线网络最有优势的地方,同时,由于不分主从,因此,每一个节点都可以接收信息或者在总线空闲的时候发送信息,这是CAN 总线的另外一个比较重要的优势。
2 语音节点硬件电路设计语音数据通过麦克风输入,经过MAX9814 进行放大,然后送到数模转换模块进行A/D转换,再通过语音处理模块将数据压缩打包传送给微处理器,微处理器通过CAN 收发器将数据传到总线上;总线上的信息通过收发器传送给微处理器,通过微处理器传至语音处理模块,对其解压缩,送到模数转换模块进行D/A 转换,输出模拟信号再经过功放模块进行功率放大送到扬声器,最后由扬声器输出语音信号。
语音节点总体结构如图2所示。
图 2 语音节点总体结构图2.1 处理器模块处理器模块是语音通信节点的计算核心,所有的设备控制、任务调度、能量计算和功能协调、通信协议、数据整合和数据存储程序都将在这个模块的支持下完成,所以处理器的选择在语音通信节点设计中是至关重要的。
本设计采用带有CAN 控制模块的PIC18F458[4]单片机作为微控制器(MCU)以实现对AMBE-1000、CTM8251、 MAX9814、MAX9736 等芯片的操作控制,同时,单片机还需要控制一些按键和指示灯。
在语音节点硬件设计中,PIC18F458 与各部分接口电路以及复位电路如图3所示。
图3 PIC18F458 与各部分接口拨码开关部分电路如图4所示,用来设置语音节点的标识符(ID),ID9-ID0 依次对应拨码开关的10-1,其中拨码开关上的10-6 键为组号,5-1 键为节点号,且拨码开关处于ON 的电平值为“0”,反之为“1”。
每个节点根据标识符来判断自己是否需要接收报文。
图4 拨码开关2.2 CAN收发器模块在实际应用中,PIC18F458 需要接一个CAN 收发器,以提高总线驱动能力。
CTM8251是一款带隔离的通用CAN 收发器芯片,该芯片内部集成了所有必需的CAN 隔离及CAN 收、发器件,这些都被集成在不到3 平方厘米的芯片上。
芯片的主要功能是将CAN 控制器的逻辑电平转换为CAN 总线的差分电平并且具有DC 2500V 的隔离功能。
其接口电路如图5所示。
图 5 CTM8251 接口电路。
2.3 语音处理模块设计2.3.1 AMBE-1000的主要特点在语音处理中,编码芯片是核心部分,本设计采用的是AMBE 编码。
AMBE-1000 是美国DVSI 公司研制、Lucent 公司生产的一款成熟的双工声码器芯片,用来实现双工的语音压缩/解压缩功能,能实现低传输速率下高质量的通话。
它采用先进的AMBE 压缩算法,压缩速率最低可达2.4Kbps。
目前这种算法以其能实现的低传输速率和高通话质量而在世界范围内得到了广泛应用,甚至用在下一代移动通信系统中。
AMBE-1000 可看成由两个分开的编码器和解码器组成。
编码器接收8kHz 的语音数据采样流(如16 位线性的,8 位A 律的或8 位μ律的)和输出一个期望的波特率的信道数据流。
反之,解码器接收一个信道数据流并合成一个语音数据流。
AMBE-1000 的编码器和解码器的接口时序是完全异步的[5]。
压缩数据从编码器出来要通过一个接口送到解码器,该接口就是信道接口。
基本的信道接口包括串口和并口,管脚CH_SEL[2-0]的配置将决定使用哪种接口。
串口和并口都能工作于主动模式和被动模式。
主动和被动是指激励信号是由本芯片给出,还是由外部模块送入。
2.3.2 AMBE-1000 与处理器模块接口电路串行模式下AMBE-1000 通过CHS_DI 和CHS_DO 输入、输出16 位的数据字。
声码器AMBE-1000 工作在被动模式,与控制器之间采用串行方式传送数据,两者之间接口如图6 所示。
图6 AMBE-1000 与控制器接口AMBE-1000 中语音编码率和前向纠错编码率的选择可以是独立的。
这些码率可以通过命令帧的方法配置,也可以通过硬件管脚BPS_SEL[3-0](pin 3,4,5,6)来配置。
本设计中设定AMBE-1000 的语音编码率为2.4Kbps,故管脚BPS_SEL[3-0]均通过电阻接地。
2.3.3 语音 A/D、D/A 模块设计对于一个高质量的语音通信系统,A/D-D/A 芯片的选择至关重要。
在选择A/D-D/A 芯片时,需要考虑这些芯片的信噪比和滤波性能。
一般应优先考虑那些16位线性A/D-D/A芯片,以获得较高的语音质量。
对于任何一种与之相连接的A /D-D/A 芯片, AMBE-1000 都采用8kHz 语音数据采样率。
这些8 kHz 数据通过串行接口输入(或者输出)到AMBE-1000,可以通过软件(发送命令帧)或者硬件方式,进行A/D-D/A 接口的选择和配置。
本系统采用的A/D-D/A 芯片是CSP1027,这是一款带有16 位串行A/D 和D/A 的芯片,符合CCITT G.712语音频带响应和信噪比规范,其采样频率可高达24KHz,它采用低功耗全静态逻辑设计,在数字电源3.3V、模拟电源5V 工作时,典型功耗68mW,待机功耗0.05mW。
CSP1027 与AMBE-1000 之间采用串行工作方式,二者的接口电路如图7所示。
经MAX9814 放大后的麦克风语音信号由45 号管脚(MICIN)送入CSP1027 进行A/D 转换,然后经21 号管脚(DO)送入AMBE-1000 进行压缩编码。
相反地,AMBE-1000 解码之后的数字语音数据要送入CSP1027 芯片进行D/A转换(TX_DO 与DI相连接),恢复出的模拟语音信号由43 号管脚(AOUTP)输出,并通过此管脚将模拟语音信号送出MAX9736 进行功率放大,最后通过扬声器播放出来。
图 7 CSP1027 与AMBE-1000 的接口2.3.4 语音采集模块设计本模块的作用是将麦克风微弱语音信号放大给A/D 转换器。
本系统采用了具有自动增益控制(AGC)功能的MIC 放大芯片MAX9814,该芯片是Maxim 推出的低成本、高品质麦克风放大器,器件具有低噪声前端放大器、可变增益放大器(VGA)、输出放大器、麦克风偏置电压发生器和AGC控制电路。
MAX9814 的电路设计如图8所示,麦克风语音信号通过管脚8(MICIN)输入MAX9814芯片,进行语音信号放大,之后从管脚6(MICOUT)输出,输出的信号送到模数转换模块即CSP1027 进行A/D 转换。
图8 MAX9814电路设计图2.3.5 功放模块设计由于井下语音节点使用环境比较嘈杂,因此需要配备功放来驱动井下的喇叭,本系统采用的功放芯片为Maxim 的MAX9736,可以工作在8V 至28V,并具有高PSRR,无需稳压电源。
MAX9736采用12V供电时效率可达88%。
语音数据经过解码、D/A 转换等恢复为模拟信号。
输出的模拟信号要在经过语音模块进行功率放大送到扬声器。
该模块电路设计如图9所示。
图9 功放模块电路设计图3 语音节点软件流程设计语音节点可以与网关节点和组内其他语音节点进行通信。
当与网关通话按键按下后(Button_Gate=0),打开本地MIC,关闭本地功放,让AMBE-1000 工作,修改发送缓冲器标识符,使仅网关节点能接收到该语音数据,等待编码器编码完毕(EPR=1),从AMBE-1000 中读取编码后的数据,然后将压缩编码后的语音数据发送到CAN 总线上。
发送完毕后需要关闭本地MIC,使AMBE-1000 休眠。
当与组内其他节点通话按键按下后(Button_Group=0),工作过程和与网关节点通话过程基本相同,只是发送缓冲器标识符不同。
语音节点主程序流程如图10 所示。
当作为接收节点时,将产生CAN 接收中断,然后判断是否为本板数据,若是,则等待解码器空(DPE=1),将数据写入AMBE-1000 解码,并播放语音。
语音节点中断服务程序如图11所示。
图 10 语音节点主程序流程图11 语音节点中断服务程序流程系统初始化主要包括对I/ O 口初始化、串口初始化和CAN 控制器的初始化等。
4 结语应用该方法构造的语音通信系统能够在保持良好的语音通信质量的前提下,简化电路,降低功耗,节约成本。