教育教学

当前位置: 首页 -> 教育教学 -> 教学工作 -> 人才培养 -> 本科生培养 -> 教学大纲 -> 正文

《嵌入式linux驱动开发》教学大纲

信息来源: 发布日期:2015-09-25

《嵌入式linux驱动开发》教学大纲

课程名称:

嵌入式linux驱动开发

课程编号:

408310

436315

适用专业:

计算机科学与技术

软件工程

课程类别:

嵌入式方向限选课

嵌入式方向限选课

课程学分:

3

3

总学时:

54

54

其中:理论学时

28

28

式实验学时

26

26

先修课程:

嵌入式linux操作系统、ARM嵌入式体系结构与接口技术、嵌入linux式应用程序开发、嵌入式linux系统开发

一、课程的性质、目的与任务

《嵌入式Linux驱动程序开发》是嵌入式系统开发中讲解Linux设备驱动程序开发方法和技术的课程, Linux驱动程序开发是嵌入式Linux项目中工作量最大的一部分内容。本课程内容包括Linux驱动程序基础、内核移植、总线驱动程序、LCD驱动程序、网络驱动程序、输入子系统驱动程序、块设备驱动程序等。

通过本实验课程,掌握嵌入式Linux字符设备驱动开发和分析的方法,具体应达到以下几个教学目的:

(1)嵌入式Linux字符设备驱动开发;

(2)嵌入式Linux下块设备驱动开发;

(3)掌握嵌入式Linux下网络设备驱动开发;

(4)掌握嵌入式Linux下PCI、LCD显示屏设备驱动开发;

(5)掌握嵌入式Linux下触摸屏设备驱动开发;

(6)掌握嵌入式Linux下和USB设备驱动开发。

二、课程教学基本内容与要求

第一章 嵌入式系统与驱动程序

(一)教学内容

1.1 嵌入式系统概述

1.2 嵌入式处理器介绍

1.3 嵌入式操作系统介绍

1.4 嵌入式Linux驱动程序

(二)基本要求

教学目的:理解嵌入式系统的特点和体系结构,理解主流嵌入式操作系统和嵌入式处理器,理解嵌入式Linux的文件系统、设备管理和驱动程序。

教学重点:嵌入式系统的特点和体系结构,主流嵌入式操作系统,嵌入式Linux的文件系统、设备管理和驱动程序。

教学难点:嵌入式Linux的文件系统、设备管理和驱动程序。

第二章 简单的字符设备驱动程序

(一)教学内容

2.1 嵌入式Linux字符设备的驱动程序结构

2.2 设备驱动程序中的具体问题

2.3 LED的驱动程序实例及测试

2.4 嵌入式Linux中断处理驱动程序及测试

2.5 按键中断的驱动程序实例

(二)基本要求

教学目的:理解嵌入式系统的特点和体系结构,理解主流嵌入式操作系统和嵌入式处理器,理解嵌入式Linux的文件系统、设备管理和驱动程序。

教学重点:嵌入式Linux驱动程序常用的头文件、 File_operations结构体、字符设备驱动程序的入口和驱动程序的设备及注册,I/O端口、内存操作和中断处理, LED的驱动程序设计、按键中断的驱动设计实现。

教学难点:LED的驱动程序设计、按键中断的驱动设计实现。

第三章 数字显示驱动程序

(一)教学内容

3.1 数字显示器

3.2 数码管显示电路的硬件设计

3.3 数码管驱动程序实例

3.4 数码管显示电路测试程序设计

(二)基本要求

教学目的:掌握数字显示器的显示原理,硬件设计和驱动程序设计方法。

教学重点:串/并变换的译码设计、译码器的使用、数码管的驱动方式、数码管显示原理和驱动程序设计及数码管电路测试程序设计实现。

教学难点:数码管的驱动程序设计及数码管电路测试程序设计实现。

第四章 键盘驱动程序

(一)教学内容

4.1 键盘接口概述

4.2 键盘的驱动设计实例

4.3 智能控制芯片HD7279扩展键盘

(二)基本要求

教学目的:掌握键盘接口工作原理和驱动程序设计方法。

教学重点:键盘接口工作原理,锁存器和缓冲器扩展键盘测试程序设计和驱动程序设计

教学难点:锁存器和缓冲器扩展键盘测试程序设计和驱动程序设计。

第七章 LCD驱动程序

(一)教学内容

7.1 LCD显示器概述

7.2 LCD的显示接口

7.3 嵌入式处理器的LCD控制器

7.4 LCD的驱动程序设计

7.5 基于Framebuffer的LCD驱动程序实例

(二)基本要求

教学目的:理解LCD显示器的基本概念、显示原理,掌握LCD测试程序设计和驱动程序设计。

教学重点:LCD的显示原理、LCD的驱动方式、TFT的时序、LCD控制器的设置、基于Framebuffer的LCD测试程序驱动程序设计实现。

教学难点:基于Framebuffer的LCD测试程序驱动程序设计实现。

第八章 触摸屏驱动程序

(一)教学内容

8.1 触摸屏概述

8.2 触摸屏的分类

8.3 触摸屏的特性

8.4 触摸屏的硬件电路设计

8.5 触摸屏的驱动程序实例

8.6 测试程序的设计

(二)基本要求

教学目的:理解触摸屏的基本概念、工作原理,掌握触摸屏测试和驱动程序设计。

教学重点:触摸屏的分类特点,电阻式触摸屏的电路原理、定位和电路连接,触摸屏的坐标、接口的模式和电路连接,触摸屏的驱动程序接口、触摸屏测试程序驱动程序设计实现。

教学难点:触摸屏测试和驱动程序设计实现。

第九章 CAN总线驱动程序

(一)教学内容

9.1 CAN总线接口设计

9.2 嵌入式处理器上CAN总线接口的扩展

9.3 SJA1000扩展CAN总线接口的设计

9.4 SJA1000扩展CAN总线接口的通信

9.5 驱动程序的加载

(二)基本要求

教学目的:理解CAN总线接口的基本概念、工作原理,掌握CAN总线接口的设计和通过CAN总线建立通信的步骤。

教学重点:CAN总线的电气特征和MAC帧结构,CAN控制器SJA1000的操作模式、特征功能和Basic CAN模式设置,通过CAN总线建立通信的步骤,SJA1000的初始化,驱动程序的结构设计,init、exit、open、close、read、write、interrupt、ioctl函数实现。

教学难点:CAN总线建立通信的实现。

第十章 IIC总线驱动程序

(一)教学内容

10.1 IIC总线概述

10.2 嵌入式处理器的IIC接口

10.3 基于IIC的键盘芯片应用

10.4 IIC总线驱动程序实例

10.5 IIC总线的测试程序

(二)基本要求

教学目的:理解IIC总线的基本概念、工作原理,掌握IIC总线测试程序设计和驱动程序设计。

教学重点:IIC总线的基本结构、IIC总线的竞争仲裁和工作流程,嵌入式处理器的IIC总线控制寄存器、I状态寄存器、地址寄存器和移位数据寄存器,S3C2410中与IIC对应的I/O端口,IIC总线驱动程序和测试程序实例。

教学难点:IIC总线测试和驱动程序设计实现。

第十四章 串口驱动程序

(一)教学内容

15.1 串口概述

15.2 嵌入式处理器串口控制器

15.3 嵌入式Linux串口驱动程序设计

15.4 嵌入式Linux串口的应用程序设计

(二)基本要求

教学目的:理解串口的基本概念、工作原理,掌握串口驱动程序设计方法。

教学重点:异步串口的传输标准、嵌入式系统中常用的UART控制器、USB测试和驱动程序设计。

教学难点:串口驱动程序设计方法。

第十五章 USB设备驱动程序

(一)教学内容

14.1 USB接口概述

14.2 嵌入式系统中USB的使用

14.3 嵌入式系统中USB设备的驱动程序设计

14.4 USB驱动程序测试331

(二)基本要求

教学目的:理解USB接口的基本概念、工作原理和在嵌入式系统中的使用,掌握触摸屏测试程序设计和驱动程序设计。

教学重点:USB的电气特性和通信协议,USB驱动的骨架程序,Host接口硬件设计,USB测试程序驱动程序设计。

教学难点:USB接口测试和驱动程序设计。

第十六章 网络设备驱动程序

(一)教学内容

16.1 以太网概述

16.2 嵌入式处理器的以太网接口

16.3 以太网驱动程序体系结构

16.4 网卡驱动程序实例

16.5 网络驱动程序的测试

(二)基本要求

教学目的:理解以太网的基本概念、以太网的工作原理和以太网驱动程序体系结构,掌握网卡测试驱动程序设计方法。

教学重点:以太网的工作原理、帧结构,TCP/IP网络协议,网络驱动程序的结构,网络设备初始化,数据包的发送与接收,网络设备的加载方式,网卡测试和驱动程序设计实现。

教学难点:网卡测试和驱动程序设计实现。

三、课程各章节学时分配

序号

内容

理论学时

实验学时

计科

软工

计科

软工

1

嵌入式系统与驱动程序

2

2

0

0

2

简单的字符设备驱动程序

6

6

6

6

3

数字显示驱动程序

2

2

2

2

4

键盘驱动程序

2

2

2

2

5

LCD驱动程序

2

2

2

2

6

触摸屏驱动程序

3

3

3

3

7

CAN总线驱动程序

2

2

2

2

8

IIC总线驱动程序

3

3

2

2

9

串口驱动程序

2

2

3

3

10

USB设备驱动程序

2

2

2

2

11

网络设备驱动程

2

2

2

2

合计

28

28

26

26

四、本课程课外学习与修学指导

(1)、该课程是一门综合性很强的课程,所以要多参考相关书籍,做到能系统的撑握相关知识,包括微机原理与接口技术,ARM体系结构与编程、linux内核等。

(2)、Linux驱动的开发需要牢固的硬件基础,并需要对驱动中所涉及的Linux内核知识有良好的掌握,在有限的实验课时以外,多实践练习。锻炼嵌入式驱动程序开发的基本技能和方法,为后续学习打下基础。

(3)、嵌入式驱动程序源代码,大多是开源的。所以在进行设计过程中,课外多下载阅读分析相关源代码,做到个性化开发。

五、本课程考核方式及成绩评定标准

考核方式:闭卷考试

成绩评定方法:本课程的考核是平时成绩、实验成绩和期终考试成绩相结合。具体比例为:上课出勤、作业占20%,实验占20%,期末考试成绩占60%。

其中期未考试总分100分,基础题占50%,中等难度题占40%,较难题占10%。考试题型主要有:选择题、填空题、判断题、简答题、分析设计题等。

六、教材及参考书

1、教材:宋宝华. Linux设备驱动开发详解.北京:人民邮电出版社,2008

2、主要参考书:

[1]刘洪涛,孙天泽.嵌入式系统技术与设计.北京:人民邮电出版社,2008

[2] aniel P.Bovet;Marco Cesati著.陈莉君,张琼声,张宏伟译,深入linux内核(第三版).北京:中国电力出版社,2007

[3] [美]Christopher Halinan.嵌入式Linux开发(英文版).北京:人民邮电出版社,2008

[4]罗克露,陈云川.嵌入式软件调试技术.北京:电子工业出版社,2009

[5] [英]Neil Matthew;Richard Stones著.陈健,宋健建译.linux程序设计(第三版).北京:人民邮电出版社,2009

[6]华清远见嵌入式培训中心主编,Linux设备驱动开发详解(第2版).北京:人民邮电出版社,2010

大纲撰写人: 刘泽平

大纲审阅人: 袁辉勇

教学副主任: 易叶青

编写日期:2012.6