集创赛『信诺达杯』初赛经验分享
博主无竞赛专业知识,仅分享心得体会,内容不免有疏漏。欢迎评论指正。
前言
为什么集创赛要报信诺达杯呢?因为看错了。画着版图导着管,突然就被赛事联系人抓走了
前段时间终于把信诺达杯的初赛方案交上去了。这个赛题是我和队友一起从无到有、摸爬滚打,才逐渐摸清的,简单说一点心得吧。
赛题分析
MT8880是具有MPU和IO接口的可以进行编码和译码的DTMF收发机芯片,通过数据总线和使能信号,在时钟沿对内部寄存器进行读写,可以实现功能模式的转换和数据收发的时序控制。
在发送模式中,通过数据总线写入发送寄存器中的数据,在经过数模转换器后产生对应的DTMF信号,内部行列计数器可以精准定时传输脉冲串信号。
在接收模式中,经过输入端差分放大器对输入的DTMF进行采样,经过滤波器和检测装置的解码,在迟滞电路中产生迟滞信号,输出信号中断,并在接收寄存器存储译码后的数字信号。
同时,通过对控制寄存器进行改写,可以实现在接收模式,单音发送模式,双音多频发送模式,突发模式,暂停模式等模式间进行切换。
这是一片数模混合芯片,需要测试的参数繁多,且功能测试复杂。因此,秉持“由易入难”的思想,先分析数字 ...
记一次无技术手册开发墨水屏驱动的过程
我是不是花钱找罪受?哈哈,怎么会呢。
[忆语游心] 写在前面
No Game, No Life.
成都之旅
傍水映月、细雨静夜。
计算机原理与嵌入式系统笔记:第十四篇
试题为回忆版,可能有疏漏/错误
选择:
绪论 嵌入式系统设计流程
前变址
立即数判断
简答题:
直接映射和全相连的概念、二者优缺点
补码计算、CPSR位判断
AMBA总线
分析题:
MIPS数据通路、流水线寄存器位宽、信号含义
EDF调度表
编程题:
While-Do结构的FIR滤波器/循环书写
总体是不算太难的。考场里最快交卷的时间是开考后一个半小时。
概念考察的不少,需要好好背一背。主要是理解。
信号数量、位宽啥的不用背,图上一般都会有,含义其实也能通过看图上面的MUX来判断。
2024.7.4 成绩下发。平时97,期末89,总分91,排名前15%。感觉老师改卷是偏松的。考的最好的一门 最好的应该是电工实习,战胜100%的人
计算机原理与嵌入式系统笔记:第十三篇
多进程与多速率系统
任务与进程
任务(task) 是一个密切相连的操作组合的功能描述。
任务也可定义为若干进程或线程的组成。
进程(process) 是一个程序的单次执行。
两次运行相同的程序,可以创建两个不同进程
每个进程拥有自己的状态:
寄存器状态
存储器状态
操作系统管理进程
为什么需要多进程?多任务本身即是多进程,多进程有助于在时间复杂系统中应用。
多速率系统
多速率(multirate) 的嵌入式计算系统很常见,程序设计必须满足多种速率对计算的时间要求。
任务之间可以是同步或不同步
同步的任务可以以不同的速率发生
根据任务的实际计算需求,进程运行在不同的速率
进程的时间约束
进程的时间约束会影响可用的调度策略,进程有两个重要的约束:
释放时间(release time):也叫起始时间(initiation time),进程处于准备执行状态的时刻,此时未取得CPU控制,也没有开始运行。
截止时限(deadline):指明计算何时必须结束。
非周期性进程由一个事件触发;周期性进程在每个周期都执行,在周期开始时初始化。
进程的速率约束
进程的速率约束指 ...
计算机原理与嵌入式系统笔记:第十二篇
程序组件与程序模型
嵌入式软件常用的三个组件结构:
状态机(State machine)
循环缓冲区(Circular buffer)
队列(Queue)
状态机适合于交互式系统,循环缓冲区和队列应用于数字信号处理系统。
状态机
有限状态机是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型,分为两种:
Moore机:输出只由当前状态确定
Mealy机:输出依赖于当前状态和输入
循环缓冲区
流数据通常用于信号处理领域的程序设计中,数据定期传送,新数据按规律到达,且每个数据生命周期有限,需要程序立即处理。循环缓冲区是便于程序高效处理流数据的一种数据结构。数据窗口尺寸不变,只是随时间滑动。
索引指向循环缓冲区的下一个被替换的数据位置(input)和当前使用的数据位置(use)。
12345678910111213141516171819202122232425262728293031#define CMAX 6 /* filter order */int circ[CMAX]; /* circular buffer */int pos; /* pos ...
计算机原理与嵌入式系统笔记:第十一篇
CPU总线
计算系统包括微处理器(CPU)、输入输出设备(I/O Devices)和存储器。
总线(bus) 是系统组件之间的公共连接,是CPU与存储器和设备进行通信的机制,定义它们之间通信的协议。
协议(protocol) 定义了设备之间如何通信。
四周期握手协议
设备1升高查询信号的输出电平,告诉设备2准备监听数据。
当设备2准备好接收数据时,它使应答信号为高电平。这时设备1和设备2已准备好发送或接收数据。
一旦数据传送完毕,设备2使应答信号为低电平,表示已经接收完数据。
检测到应答信号变低,设备1降低其查询信号的输出电平
典型总线结构
总线的基本操作是读和写,典型的总线结构包括以下组件:
Clock:时钟,用于总线各组件之间的同步。
R/W:当总线读时,R/W为1;当总线写时,R/W为0。
Address:是一个a位信号束(bundle),传输访问的地址。
Data:是一个n位信号束,用于传输CPU发送或者接收的数据。
Data ready:数据就绪,表示数据信号束上的值有效。
传输由CPU控制,R/W和地址是单向信号,CPU决定地址和方向。
总线操作的时序图与顺序图
...
计算机原理与嵌入式系统笔记:第十篇
MIPS流水线结构
必考的牢弟
流水线组成与加速比估算
MIPS的流水线由5级组成,每级完成指令执行的一个步骤:
IF:从存储器中取指令
ID:指令解码和读寄存器
EX:指令执行操作或地址计算
MEM:存取存储器操作数
WB:将结果写回寄存器
一般假设寄存器堆的读或写为100ps,其他操作为200ps。则:
lw指令既要读又要写寄存器堆,并且要访问数据存储器,因此耗时800ps;
sw指令不需要写入寄存器堆,因此耗时700ps;
R-type指令不需要访问数据存储器,因此耗时600ps;
branch指令不需要访问数据存储器,也不需要写入寄存器堆,因此耗时500ps。
则执行3条lw指令的加速比应该是1.71,执行3条R-type指令的加速比应该是1.28。
有关流水线的更多内容请参阅:ARM第四话:流水线!
流水线各级延时不均衡会降低加速比,进/出流水线的延时也会降低加速比。
面向流水线的指令集设计
设计适应流水线的MIPS指令集,应当遵循“4+1”原则:
所有的指令长度都相同(32-bit)
简化了流水线第一级取指和第二级译码
而x86指令的长度:1~15 byte ...
计算机原理与嵌入式系统笔记:第九篇
MIPS处理器
MIPS是RISC处理器的一种,全程为无内部互锁流水级的微处理器(Microprocessor without interlocked pipelined stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。MIPS处理器广泛用于路由器上,常见的路由器使用的处理器有发哥联发科MT7621等。
时钟周期
MIPS采用两相非交叠时钟,流水线级是两层的锁存器。
指令
MIPS有三类指令:
存储器访问指令(Load/Store指令):
取字(lw),存字(sw)
算术/逻辑指令(R-type指令):
加法(add),减法(sub),与(and),或(or),小于则置位(slt)
分支指令(Branch指令):
相等则跳转(beq),无条件跳转(j)
记好开头6位对应的数字就知道这是什么指令了!最简单的办法!
0:R-Type
4:Branch
35:lw
43:sw
寄存器中的Rs/Rt/Rd到底是什么意思?
Rs表示源寄存器Source Register,Rt代表作为中间缓存的目标寄存器Target Register,Rd表示目的 ...


![[忆语游心] 写在前面](https://pic.esing.dev/img/60087265_p0_2024-7-21_0041_t96nts0tge.png)


![[忆语游心] 生化危机4-重制版](https://webpn.esing.dev/img/re4_0_260502_1947_8tvn.jpg)

