NIOS2随笔——JPEG图片的UART传输显示

1. 系统概述

本设计采用NIOS2 32位处理器,通过SPI接口将SD/TF卡中的JPEG图片数据读取到内存中,SD/TF卡的文件系统为FAT32,NIOS2软件实现将JPEG图片通过UART串口发送给上位机显示,系统框图如下:

2. UART介绍

UART(Universal Asynchronous Receiver/Transmitter)是一种异步收发传输器,工作原理是将传输数据的每个字符一位接一位地传输。

UART在空闲时为逻辑1状态,其各位的的意义如下:

  • 起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。
  • 资料位:紧接着起始位之后。资料位的个数一般为8,构成一个字符。通常采用ASCII码,从最低位开始传送,靠时钟定位。
  • 奇偶校验位:资料位加上这一位后,使得1的位数应为偶数(偶校验)或奇数(奇校验)。
  • 停止位:一个字符数据的结束标志,可以是1位、1.5位、2位的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此需要多于1位的高电平时间,提供计算机校正时钟同步的机会。

3. 搭建QSYS系统

这里主要是添加UART组件,如下图所示:


4. 驱动软件设计
驱动代码,负责将SD中的JPEG图片读取到内存中,然后通过UART发送给上位机显示。

unsigned char desk[54171];

int main (void)
{
	int i;
	FILE* fp;
	fp = fopen ("/dev/uart_0", "w");
	while(1)
	{
		for(i=0;i<54171;i++)
		{
			if (fp!=NULL)
			{
				fprintf(fp, "%c",desk[i]);
			}
		}
	}
	fclose(fp);
	return 0;
}

5. 最终结果

编译运行软件后,打开上位机DEMO软件,设置串口波特率为115200,打开串口后,图片正确显示。

时间: 2024-06-25 09:53:57

NIOS2随笔——JPEG图片的UART传输显示的相关文章

NIOS2随笔——JPEG解码与VGA显示

1. 系统概述 本设计采用NIOS2 32位处理器,通过SPI接口将SD/TF卡中的JPEG图片数据读取到内存中,SD/TF卡的文件系统为FAT32,NIOS2软件实现JPEG解码后,启动framereader和Clocked Video Output模块,最终在VGA显示器上显示JPEG图像,系统框图如下: 2. JPEG格式 JPEG(Joint Photographic Experts Group)是第一个国际图像压缩标准,提供了良好的压缩性能的同时,具有较好的图像质量,被广泛应用电子产品

RTP传输JPEG图片到VLC实时播放(代码)

一.环境是ubuntu 二.采集视频. 我这里采集的是YUYV422,然后可以通过两种方式转化,1.yuyv422->yuv420->jpeg->rtp->vlc(yuv420解码).2.yuyv422->rgb->jpeg->rtp->vlc(yuv420解码) V4L2编程可以参考:V4L2编程 YUYV422转RGB参考:YUYV422TORGB 三.代码下载 包含jpeg-9a库,库安装百度就ok. 传输代码看readme. 点击这里下载源代码 四.

jquery实现图片无缝轮播显示(个人随笔)

纯属个人随笔,不当之处,欢迎指正. 代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> <title>图片无缝轮播显示</title> <script type="text/javascript" src="JavaScript/jquery-1.11.2.min.js"></script&g

Android ImageView 不显示JPEG图片 及 Android Studio中怎样引用图片资源

Android ImageView 不显示JPEG图片 今天在写一个小实例,ImageView在xml里面设置的是INVISIBLE,在代码里须要设置成setVisibility(View.VISIBLE),但图片没有显示出来,换成PNG或其他的JPEG格式的图片确能够正常的显示. 原因:显示的图片大小为5.39K,图片格式有损坏,所以不能正常显示. 解决:换一张图片.或又一次生成JPEG图片. 假设还是不能正常显示,建议在设置完VISIBLE后,调用例如以下方法: iv.setVisibili

Android ImageView 不显示JPEG图片 及 Android Studio中如何引用图片资源

Android ImageView 不显示JPEG图片 今天在写一个小实例,ImageView在xml里面设置的是INVISIBLE,在代码里需要设置成setVisibility(View.VISIBLE),但图片没有显示出来,换成PNG或其它的JPEG格式的图片确可以正常的显示. 原因:显示的图片大小为5.39K,图片格式有损坏,所以不能正常显示. 解决:换一张图片,或重新生成JPEG图片. 如果还是不能正常显示,建议在设置完VISIBLE后,调用如下方法: iv.setVisibility(

JPEG图片解码

简介 JPEG是一种广泛适用的压缩图像标准方式.JPEG就是「联合图像专家组」(JointPhotographicExpertsGroup)的首字母缩写.采用这种压缩格式的文件一般就称为JPEG:此类文件的一般扩展名有:.jpeg..jfif..jpg或.jpe,其中在主流平台最常见的是.jpg. JPEG/JFIF是互联网上最常见的图像存储和传送格式.但此格式不适合用来绘制线条.文字或图标,因为它的压缩方式对这几种图片损坏严重.PNG和GIF文件更适合以上几种图片.不过GIF每像素只支持8bi

Android 使用ContentProvider扫描手机中的图片,仿微信显示本地图片效果

首先我们先看第一个界面吧,使用将手机中的图片扫描出来,然后根据图片的所在的文件夹将其分类出来,并显示所在文件夹里面的一张图片和文件夹中图片个数,我们根据界面元素(文件夹名, 文件夹图片个数,文件夹中的一张图片)使用一个实体对象ImageBean来封装这三个属性 package com.example.imagescan; /** * GridView的每个item的数据对象 * * @author len * */ public class ImageBean{ /** * 文件夹的第一张图片路

NIOS2随笔——FAT32文件系统

1. 概述 FAT32是Windows系统硬盘分区格式的一种,最大单文件大小为4GB. FAT32由下面3个部分组成: MBR: Master Boot Record, 512KB, 硬盘的物理0地址,以0x55aa结束分区: FAT: File Allocation Table, 512*2KB, 32位的文件分配表,最大单文件大小为4GB,以0x55aa结束分区: File and Directory Data:数据与目录区域. 比如,一个42B的文件会占用2K=4个sector(512KB

IJL库之JPEG图片压缩

如何将比较大的图片压缩成比较小的图片,通常在相机一直拍图且需要将图片网络传输时,必须压缩图片.相机一般几十FPS,每张几M,只能用JPEG有顺压缩才能到可以实时传输要求. 还有就是这种特定情况压缩需要保证 压缩率 与 压缩速度,那就是用Intel的IJL JPEG压缩库,网上有IJL15.DLL  IJL20.DLL,15版本存在内存泄漏,用20版本即可. 例子: exe执行程序 ,  ijl20x64.dll  放在同一级目录下. typedef IJLERR (*pInitFunc)(JPE