Linux clock子系统【1】- 对clock时钟框架见解

系列文章目录

Linux clock子系统【1】- 对clock时钟框架见解
Linux clock子系统【2】- 一文搞懂 | Linux 时钟子系统
Linux clock子系统【3】-i2c控制器获取时钟的流程分析
Linux clock子系统【4】-从CLK_OF_DECLARE 解析时钟驱动
Linux clock子系统【5】-从imx_clk_mux解析多路复用时钟时钟驱动(provider侧)
Linux clock子系统【6】-从imx_clk_gate2解析多路复用时钟时钟驱动(provider侧)

BUG

CLOCK【1】-单片机使用内部时钟,串口受热输出错误数据

扩展阅读

SOC时钟——一文看懂所有锁相环PLL的对比(模拟PLL、全数字PLL、模拟DLL、数字DLL)



前言


一、clock时钟框架称为common clock framework

在这里插入图片描述
从图中我们可以看出时钟提供者(clock provider)和时钟使用者(clock consumer)是通过common clock framework来通信的,而通信的基础都是设备树

  1. provider侧:
    解析设备树的的#clock-cells(必须有,若属性值为0,表示provider就提供一个clock output输出,若属性值为1,表示provider就提供多个clock output输出)和#clock-output-names(非必须有)属性,通过clk_register等一系列注册函数把硬件时钟树注册,然后调用of_clk_add_provider接口(这是providerconsumer连接的桥梁)组成时钟链表供时钟使用者查询使用

  2. consumer侧:
    解析设备树#clocks ,#clock-names 等属性,调用clk_get,devm_clk_get,clk_enable,clk_set_rate等一系列接口函数从provider侧组织好的时钟链表中获取匹配的时钟句柄(struct clk类型)

对我们使用者(device driver)来说,struct clk只是访问clock的一个句柄,不用关心它内部的具体形态。所以只需知道以下常用接口就可以:

二、CLOCK API

2.1 clock 获取有关的API:

device driver在操作设备的clock之前,需要先获取和该clock关联的struct clk指针,获取的接口如下:

/*从一个时钟list链表中以dev或者字符id名称查找一个时钟clk结构体*/
struct clk *clk_get(struct device *dev, const char *id);

struct clk *devm_clk_get(struct device *dev, const char *id);

/*该函数与clk_get函数对应,释放对应时钟结构体,即对结构体的引用计数减1*/
void clk_put(struct clk *clk);

void devm_clk_put(struct device *dev, struct clk *clk);

struct clk *clk_get_sys(const char *dev_id, const char *con_id);

struct clk *of_clk_get(struct device_node *np, int index);

struct clk *of_clk_get_by_name(struct device_node *np, const char *name);

struct clk *of_clk_get_from_provider(struct of_phandle_args *clkspec);

2.2 clock控制有关的API:

int clk_prepare(struct clk *clk)

void clk_unprepare(struct clk *clk)

/*使能对应的时钟*/
static inline int clk_enable(struct clk *clk)

/*关闭对应时钟*/
static inline void clk_disable(struct clk *clk)

/*获取对应时钟模块的频率*/
static inline unsigned long clk_get_rate(struct clk *clk)

/*设置时钟模块的频率*/
static inline int clk_set_rate(struct clk *clk, unsigned long rate)

/*调整频率rate为对应时钟可以提供的正确频率*/
static inline long clk_round_rate(struct clk *clk, unsigned long rate)

static inline int clk_set_parent(struct clk *clk, struct clk *parent)

static inline struct clk *clk_get_parent(struct clk *clk)

参考

  1. 对clock时钟框架见解
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于DS1302电子时钟的设计 【摘 要】针对电子时钟芯片DS1302的工作原理,本文对基于DS1302的电子时钟系统进行了硬 件和软件的设计。仿真结果表明,该设计的电子时钟电路简单,能完整地显示日期、星 期和时间,实用性较强。 【关键词】DS1302 ;AT89C51;时钟系统 The Design of Electronic Clock Based on DS1302 FENG Da-jie (Automation Department, Hainan Normal University, Haikou Hainan, 571158) 【Abstract】According to the working principle of electronic clock chip DS1302, this paper has designed electronic clock system both in hardware and software. The result of simulation demonstrates that electronic clock system designed is of simple structure and can display date, week and time, and therefore the system is more practical. 【Key words】DS1302; AT89C51; Clock system 在很多单片机系统中都要求带有实时时钟电路,如数据记录仪表、数字钟。本论文介 绍了利用时钟芯片DS1302来制作电子时钟。利用时钟芯片DS1302制作的电子时钟最大的 优点是精度高,能完整的提供秒、分、时、日、星期、月、年的信息,并且每个月的天 数和闰年的天数可自动调整。 1 电子时钟系统硬件电路设计 DS1302电子时钟电路如图1所示,该系统主要由AT89C51单片机、时钟芯片DS1302及液 晶显示器1602 三大部分组成。在此系统中,DS1302是美国DALLAS公司推出的一种高性能,低功耗的实 时时钟芯片。系统的工作原理是单片机通过读取DS1302寄存器的数据,然后将数据显示 在1602液晶显示器上。 DS1302时钟芯片简介 DS1302是DALLAS公司堆出的涓流充电时钟芯片,可以通过串行接口与单片机进行通信 。DS1302与单片机之间的通信,仅需三根I/O线:复位(RET)、I/O数据线、串行时钟( SCLK),DS1302外部引脚如图2所示。 2 电子时钟系统软件设计 在软件设计方面,采用C 语言编写DS1302初始化、读写时序, LCD1602初始化及LCD1602显示子程序,软件流程图如图3所示。 2.1 DS1302 读写时序 在DS1302时钟芯片与单片机的通信过程中,一个时钟周期是一个上升沿序列,紧跟着 一个下降沿。对于数据的输入,在时钟周期的上升沿期间,数据必须正确;在时钟周期 的下降沿,数据位输出。如果RST的输入低电平,所有数据传输中止,I/O引脚变成高阻 状态,DS1302读写时序如图4所示。 采用英国Labcenter electronics 开发的Proteus 软件对该电子时钟系统进行仿真,仿真效果如图5所示,从DS1302中读出的数据通过LCD 1602显示出来,显示器的第一行显示日期和星期,第二行显示时间。仿真结果表明,该 电子时钟系统具有电路结构简单,能显示出日期、星期和时间。 【参考文献】 [1]刘坤,宋弋,赵红波,等.51 单片机C 语言应用开发技术大全[M].北京:人民邮电出版社,2008. [2]王明顺,吴省.可涓流充电的串行实时时钟芯片DS1302 及其应用设计[J]. 电子技术应用,1996,10. [3]何立民. 单片机应用系统设计[M]. 北京:北京航空航天大学出版社,1990:133-189. ----------------------- 基于DS1302电子时钟的设计(1)全文共2页,当前为第1页。 基于DS1302电子时钟的设计(1)全文共2页,当前为第2页。
课程名称:自动控制课程设计 设计题目:电子时钟系统的设计与实现 院 系: 专 业: 年 级: 姓 名: 指导教师: 西南交通大学峨眉校区 2010年7 月 22日 课 程 设 计 任 务 书 专 业 姓 名 学 号 开题日期:2010年7月13 日 完成日期: 2010 年 7 月 22日 题 目 电子时钟系统的设计与实现 一、设计的目的 通过课程设计,使学生巩固和加深对单片机基本知识的理解,学会查询资料、方案设 计、方案比较,以及单元电路设计计算等环节,进一步提高学生综合运用所学知识的能力 ,提高分析解决实际问题的能力。锻炼分析、解决电子电路问题的实际本领,通过此综 合训练,为以后毕业设计打下一定的基础。 二、设计的内容及要求 1、设计一个基于单片机的电子时钟,并且能够实现时分秒的显示和调节. 2、系统显示器由6位数字型数码管组成,分别显示时间值的小时、分和秒. 3、能够随时对当前时间进行调整。 4、能够随时输入定时(闹钟)时间. 5、定时(闹钟)时间到,发出闹钟提醒信号. 6、闹钟提醒信号的声音为断续形式,最长不超过1min. 三、指导教师评语 四、成 绩 指导教师 (签章) 年 月 日 摘 要 随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要的作用.多媒 体技术、网络技术、智能信息处理技术、自适用控制技术、数据挖掘与处理技术等都离 不开计算机。本课程设计是基单片机原理与接口技术的简单应用。运用所学的单片机原 理和接口技术知识完成电子时钟系统的设计与实现。 电子时钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室 等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技 术的发展和采用了先进的石英技术,使电子时钟具有走时准确、性能稳定、携带方便等 优点,它还用于计时、自动报时及自动控制等各个领域。尽管目前市场上已有现成的电 子表集成电路芯片出售,价格便宜、使用也方便,但鉴于电子时钟电路的基本组成包含 了数字电路的主要组成部分,因此进行电子时钟的设计是必要的,用汇编语言设计电子 时钟显示程序,要求根据输入程序显示电子时钟画面.研究电子时钟及扩大其应用,有着 非常现实的意义。    关键词: LED,定时/计器数, 汇编语言,调试,运行 ABSTRACT With the development of electronic technology, computers in the development of modern science and technology play an increasingly important role in. Multimedia technology, network technology, intelligent information processing, since the application of control technology, data mining and processing and so can not do without a computer。 The course design is based SCM theory and simple application interface technology。 Learned the use of SCM principles and interface of technical knowledge to complete electronic clock system design and implementation。 Electronic clock has become essential daily necessities, are widely used in personal home and office and other public places, to people's lives, study, work, entertainment brought great convenience. As digital integrated circuit technology and uses advanced quartz technology to enable electronic clock has accurate time and stable performance, portable and easy, it also used for timing, automatic timekeeping and control fields。 Although the market has been ready to sell el

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值