微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机的TMS320VC5402的HPI通信设计

基于单片机的TMS320VC5402的HPI通信设计

时间:02-07 来源:互联网 点击:

和11均表明访问HPID,但01还表明同时启用HPIA自动增长的功能。

16bit数据传送时,HBIL为0表示传送的是第一字节,为1表明传送的是第二字节,其中高8位在第几个字节由HPIC中的BOB位决定。

HPI提供两种锁存方式,一种是由(主机地址锁存信号)的下降沿锁存各控制信号;另一种是由后三者共同完成,任何一个的下降沿锁存各控制信号。我们采用第二种方式,控制信号的锁存由的低跳变来完成。该锁存信号还指示了一次HPI口操作过程的开始。

HRDY为HPI准备好指示。

为DSP向主机发出中断的引脚。

HPIENA为HPI使能控制信号,高电平使能HPI操作。

3单片机的I/O口分配、连线和程序设计

3.1 单片机I/O口分配

在本系统中,考虑到板子的面积,选择了体积小的AT89C2051单片机,并省去了P0和P2口,增加了一个精密的模拟比较器,P1.0和P1.1除了作为I/O口(需外部电阻上拉)外,还同时作为比较器的正负极输入,而P3.6则专门用作比较器输出。因此AT89C2051提供了15根双向I/O口线,除去P3.0和P3.1用作异步串口和P1.0~P1.7用作与HPI口数据总线通信外,还有5根I/O口线可用。由于还需要控制HPI口的各控制信号和与DSP的握手信号,剩下的5根I/O口线显然不够,所以还在FPGA里设计一锁存器,把P1口用作控制/数据复用口。具体的I/O口信号分配如下:

P1.0~P1.7接HPI口的数据线HD0~HD7。当作控制信号复用时,

P1.0接FPGA内锁存器的锁存信号;

P1.1经FPGA锁存,控制HCNTL0;

P1.2经FPGA锁存,控制HCNTL1;

P1.3经FPGA锁存,控制HBIL;

P1.4经FPGA锁存,控制

P3.2接HPI的;

P3.3接HPI的XF;

P3.4接HPI的HRDY;

P3.5为单片机请求发送信号,接FPGA的P3.5;

P3.7经FPGA控制锁存HPI的各控制信号

图1给出了HPI接口与两片AT89C2051之间的连接图。

3.2 单片机程序设计要点

上面讲到,P3.5作为单片机的发送请求信号,当无数据发送时为高电平,当为低电平时则表示单片机想要发送数据,向总线仲裁器申请使用总线,总线仲裁器判断当前谁可以使用总线,然后通过外中断0中断DSP处理器,同时通过口告知DSP当前可以使用总线的单片机,最终由DSP通过XF管脚集中控制单片机的总线使用权。单片机在获取总线使用权并发送完数据后,向HPI的控制寄存器的DSPINT位写1,用中断通知DSP。在单片机需接收数据时,DSP首先设置XF脚,选择由哪个单片机接收,然后设置脚为低,通过中断告知单片机进行接收。单片机从HPI口接收时也应置P3.5为低,以便保持总线仲裁器的单片机选择信号与XF脚一致。

在对单片机编程时需要注意以下几点:(1)由于两个单片机共享总线,为保证相互之间不会干扰,没有使用总线的单片机P1口必须处于高阻态。根据P1口的内部结构,单片机不使用总线时,往P1口写入0xFF即可达到这一目的。(2)由于P1口作为控制/数据信号复用口,故编程时,对每次HPI口操作,先在P1口送出控制信号,接着设置P1.0产生低→高的跳变,把控制HPI口的P1.1~P1.4信号锁存到FPGA内部的锁存器,这时P1口才能作为数据端口,在P3.7产生一低跳变后,发起一次数据传递。(3)编程时,应防止单片机被同时要求对HPI口进行收、发操作。这可以依据实际情况,灵活地进行处理,限于篇幅,不再赘述。

4总线仲裁器的设计

总线仲裁器的功能主要是根据单片机P3.5的总线请求信号,选择当前可以使用总线的单片机,仲裁器的设计需做到单片机能够公平竞争总线使用权。在两个单片机竞争总线的情况下,用一个简单的状态机即可达到目的。状态机state仅有两个状态S0和S1,P3.5为高电平时,不申请总线,状态机保持原状态;P3.5为低电平时,则根据当前请求总线的单片机,状态机转换到相应的状态。如单片机同时申请使用总线,则保持当前的状态不变。下面给出状态转换表(S0表示选择单片机1,S1表示选择单片机2):

state, MCU1_P3.5, MCU2_P3.5 => state;

S0, 0, x => S0;

S0, 1, 0 => S1;

S0, 1, 1 => S0;

S1, x, 0 => S1;

S1, 0, 1 => S0;

S1, 1, 1 => S1;

当状态机有状态变换时,用FPGA产生一个脉宽约为1μs的低电平脉冲。这一信号接DSP外中断脚,用于中断DSP,并且将状态机的当前状态通过脚告知DSP,指明正在请求使用总线的单片机。

此外,如前所述,FPGA内部还设置一锁存器,由P1.0的高跳变将P1口送出的HPI口控制信号锁存。至于控制的两个P3.7信号,在FPGA内部只需将两信号相与即可。

4 单片机与微机串口的硬件连线

在IBM PC/XT微机系统中,其串口符合RS-232C接口标准。为提高抗干扰能力,RS-232C标准采用负逻辑,低电平在-5V~-15V之间(通常用-12V表示)为逻辑“1”,高电平在+5V~+15V之间(通常用+12V表示)为逻辑“0”。上述电平称为E

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top