0%

前言

晚上回家,不是很想干和工作相关的事情,硬核的事情也干不下去,就像做点简单的,于是就想着学者,写一写界面什么的,于是就网上找了下,发现pyqt还是挺有意思的,那么就弄起来。

环境搭建

QT没有太了解过,好像有开源和不开源两种区别,pyqt应该是开源的,那么就照着这个整就行了。

  • 实验环境
    • ubuntu 18.04
    • vscode
    • pyqt5 + qtdesigner
    • python3
Read more »

前言

在上一篇博客当中简单的介绍了CDMA系统中用于捕获信号的三个方向,并且在matlab中实现了最低一层的PN码的搜索,那么接下来就可以进行频率的搜索。

Read more »

前言

在之前的博客当中,学习着如何生成PN码,了解GPS、北斗信息是如何通过调制进行发送的,最近开始学习如何来完成北斗信号的解调,因此有必要记录一下学习的过程。

信号的捕获

在CDMA当中,系统都存在信号捕获的问题,因为发送的不同信号在同一个频率上,不同信号之间是通过伪随机码来进行区分的。
对于卫星信号而言,卫星的高速运动会使得卫星和接收机之间的相对距离发生变化,从而导致载波频率的多普勒频移,从而影响信号的质量。
由于伪随机码使得信号的频谱展宽,相应的功率降低,再加上接收机和卫星之间的距离很远,导致信号湮没在噪声中。

Read more »

1. Linux驱动LED

在前面学习了字符设备的驱动,当时实现的是一个虚拟的字符设备。能够完成简单的数据的发送和接收的工作。在实际的使用中LED在linux当中也属于字符设备。所以第一个点灯实验就可以在Linux的字符设备的基础上进行操作了。
在使用到实际的物理设备的时候,需要在linux当中使用到一个MMU设备,这个设备能够完成地址的映射等工作。

Read more »

在之前学习的时候,也有记录过如何数字信号处理的一些基础的知识,专栏的链接如下:
数字信号处理专栏
感觉数字信号处理这些东西,每过一段时间最好还是回去好好温习一下,有些东西很长时间不用很容易就忘掉了。
今天主要是记录一下FFT的使用方法,在实际的使用的时候,虽然不一定需要自己去实现一个FFT的算法,在FPGA内部使用提供好的IP核就能够完成这些操作了。但是一些最基础的知识最好还是需要自己来掌握的。

Read more »

好久没有学习了,作为一个辣鸡程序员,写着自己都看不懂的辣鸡程序。还是要学习才行啊,做一个资料的搬运工。

1.字符设备驱动开发流程

其实这个东西我完全没弄懂,只能说照猫画虎地能够把程序跑起来,实际在linux内核里面做了些什么事,我也完全不知道。做一个在框架上耕耘的小蜜蜂。

Read more »

FM 调制的原理

FM调制在之前已经实现过了,从原理上来说还是比较简单的,但是之前一直没有时间来记录一下,今天刚好在自己的实验平台上来了基于HDL的FM的调制。
关于FM的调制解调的原理在之前的一篇博客当中已经有介绍了,具体可以看
FM 调制解调原理
FM已调信号的格式如下:

Read more »

最近开始准备从头开始实现一个FM的调制月解调的实验,在进行这些实验之前,首先需要进行的一个操作就是读取SD卡当中的文件,将SD卡当中的文件读取到内存当中,在FPGA的PL端实现将数据读出,并且将读取出来的数据提供给PCM模块.这样PCM模块就能够播放音乐了.
这是实现FM调制的第一步,先有一个音频数据源.

1. 系统结构

ZYNQ读取SD卡的整个系统架构如下图所示:
协同结构

Read more »

1. 内核模块参数

在前面的学习了如何来编译一个最基础的内核模块。了解了一个内核模块在源码当中的表现形式是什么样的。在内核模块当中可以进行参数的传递。比如在加载内核模块给内核模块指定参数,这样内核模块就能根据传递的参数来进行工作了。
使用模块参数的时候需要使用到一个模块参数的宏。
module_param(name, type, perm)

  • name:参数名
  • type:参数类型,如int、byte、bool、charp…
  • perm:读写权限
Read more »

1. 内核模块的基本概念

在前面的博客当中记录了如何在ZYNQ上移植Linux,移植好Linux之后,就可以来学一学怎么进行嵌入式的开发了。这种比较传统的linux的学习方式的通用性应该比使用petalinux要好多了。

  • 宏内核:关键功能和服务功能均在内核空间提供
    • 运行效率高
    • 扩展性较差
  • 微内核:内核空间只提供关键功能,服务功能在用户空间提供
    • 运行效率较低
    • 安全性、扩展性较高

内核模块

Read more »