CENG 2400, Embedded system design

Slides:



Advertisements
Similar presentations
Microprocessors Typical microprocessor controlled devices: Camera, mobile phone, stereo, mp3 player, electronic toys… High-level microprocessor controlled.
Advertisements

1-1 ECE 424 Design of Microprocessor-Based Systems Haibo Wang ECE Department Southern Illinois University Carbondale, IL
Khaled A. Al-Utaibi  Computers are Every Where  What is Computer Engineering?  Design Levels  Computer Engineering Fields  What.
COMP3221: Microprocessors and Embedded Systems Lecture 2: Instruction Set Architecture (ISA) Lecturer: Hui Wu Session.
Chapter 2: Memory CEG2400 – Embedded System Design CEG2400 Ch2. Memory V4c1.
Course Outline for CENG2400 Embedded System Design You will learn –Hardware systems: memory, data/address bus. –Software systems: control hardware using.
Chapter 1 Sections 1.1 – 1.3 Dr. Iyad F. Jafar Introduction.
© 2009 Acehub Vista Sdn. Bhd Introduction to ARM ® Processors.
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#1) By Dr. Syed Noman.
Processors for Embedded Systems PowerPC X86 MIPS ARM & Strong ARM SuperH RISC (SH3 and SH4) PIC – EE 4175.
ARM Procesorové jadrá a procesory architektúry.  The ARM is a 32-bit reduced instruction set computer (RISC) instruction set architecture (ISA) developed.
CSE378 Gen. Intro1 Machine Organization and Assembly Language Programming Machine Organization –Hardware-centric view (in this class) –Not at the transistor.
Computer Architecture Lecture 01 Fasih ur Rehman.
Computer Organization
1 Layers of Computer Science, ISA and uArch Alexander Titov 20 September 2014.
INTRODUCTION TO MICROPROCESSORS
Overview Introduction The Level of Abstraction Organization & Architecture Structure & Function Why study computer organization?
IT253: Computer Organization Lecture 1: Introduction Tonga Institute of Higher Education.
Computer Systems Organization CS 1428 Foundations of Computer Science.
Computers organization & Assembly Language Chapter 0 INTRODUCTION TO COMPUTING Basic Concepts.
CPS120: Introduction to Computer Science Introduction to Computers.
1 8/29/05CS150 Introduction to Computer Science 1 Professor: Shereen Khoja
Computer Organization and Design Computer Abstractions and Technology
© CCI Learning Solutions Inc. 1 Lesson 2: Elements of a Personal Computer System unit Microprocessor chip How memory is measured What ROM is What RAM is.
1 Instruction Set Architecture (ISA) Alexander Titov 10/20/2012.
Computer Organization & Assembly Language © by DR. M. Amer.
1 COMS 161 Introduction to Computing Title: Computing Basics Date: September 15, 2004 Lecture Number: 10.
PC hardware and x86 programming Lec 2 Jinyang Li.
Beginning Snapshots Chapter 0. C++ An Introduction to Computing, 3rd ed. 2 Objectives Give an overview of computer science Show its breadth Provide context.
MICROOCESSORS AND MICROCONTROLLER:
This course is designed by Dr. Khaled A. Al-Utaibi.
Lecture on Central Process Unit (CPU)
COMPUTER ARCHITECTURE & OPERATIONS I Instructor: Yaohang Li.
9/22/2010Lecture 1 - Introduction1 ECE 5465 Advanced Microcomputers.
The Principle and Application of Microcontrollers
Computer Operation. Binary Codes CPU operates in binary codes Representation of values in binary codes Instructions to CPU in binary codes Addresses in.
Course Book Course Objective - The student will be able to describe various operating system concepts as they are applied to memory, process, file system.
SEPTEMBER 8, 2015 Computer Hardware 1-1. HARDWARE TERMS CPU — Central Processing Unit RAM — Random-Access Memory  “random-access” means the CPU can read.
Microprocessors CSE- 341 Dr. Jia Uddin Assistant Professor, CSE, BRAC University.
Know Difference Between Microprocessors and Microcontrollers.
CEng3361/18 CENG 336 INT. TO EMBEDDED SYSTEMS DEVELOPMENT Spring 2007 Recitation 01.
SPRING 2012 Assembly Language. Definition 2 A microprocessor is a silicon chip which forms the core of a microcomputer the concept of what goes into a.
CENG 2400, Embedded system design Chapter 1: Introduction KH Wong CENG2400 Ch1. Introduction v6b1.
CENG2400 Embedded System Design Chapter 0: Introduction K H Wong , Room 907 SHB-Engineering building
GCSE Computer Science - Revision
Introduction to Microcontrollers
Microprocessor and Microcontroller Fundamentals
Microprocessor and peripheral
Microprocessor and Microcontroller Fundamentals
Chapter 1: An Overview of Computers and Programming Languages
Computer Architecture & Operations I
IT253: Computer Organization
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
INTRODUCTION TO MICROPROCESSORS
Introduction to Microprocessors
INTRODUCTION TO MICROPROCESSORS
INTRODUCTION TO MICROPROCESSORS
CENG2400 Embedded System Design Chapter 0: Introduction
CENG 2400, Embedded system design
عمارة الحاسب.
Introduction to Microprocessors and Microcontrollers
Computer Science I CSC 135.
Lecture 2 Microprocessor Overview
EE 445S Real-Time Digital Signal Processing Lab Spring 2014
Logical Computer System
Introduction to Microprocessor Programming
Java Programming Introduction
Dr. Clincy Professor of CS
Presentation transcript:

CENG 2400, Embedded system design Lecture 1: Introduction KH Wong CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b Course Details Lecturer: Kin Hong Wong (khwong@cse) Website: http://www.cse.cuhk.edu.hk/ceng2400 Useful links http://www.arm.com/support/resources/arm-books/ Thanks to Drs Philip Leong, Y.S. Moon, O. Mencer, N. Dulay, P. Cheung for some of the slides used in this course CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b What to learn? Build microcontroller/embedded systems Program it using assembly / C languages Techniques to interface sensors and control devices CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b References References: Furber, “ARM System-on-Chip Architecture”, 2000 (refer to course website for online references) Honesty in Academic work English Video : http://www.cuhk.edu.hk/clear/tnl/Plagiarism_English.html Cantonese Video : http://www.cuhk.edu.hk/clear/tnl/Plagiarism_Cantonese.html Staff Student expectations CENG2400 Ch1. Introduction v4b

CPUs and microcontrollers A Central Processing Unit CPU is the soul of a computer; it is the element in a computer for calculation and program execution control. However, it does not function independently, it also needs memory and input/output modules to work together to become a computer. A microcontroller is a name given to a self-contained computer system that can operate on its own. It has a CPU inside as well memory and input/output modules which are packed inside a chip. So it is also named as a single-chip-computer. It is mainly used for a small systems such as mobile phones or mobile pads. CENG2400 Ch1. Introduction v4b

Examples of microcontrollers 16-Apr-17 Examples of microcontrollers It is a computer on a chip. Examples: Intel 8031, PIC (8-bit) Arm (32-bit, 64-bit assembly or C) “ARM-based CPU market share in 2010: over 95% in smartphone market; 10% in mobile computers; 35% in digital TVs and set-top boxes” ; from http://en.wikipedia.org/wiki/ARM_Holdings Arm in the I-phone http://content.zdnet.com/2346-9595_22-93276-27.html CENG2400 Ch1. Introduction v4b http://www.mobilebond.com/wp-content/uploads/2010/12/11119422-apple-iphone-4.jpg

CENG2400 Ch1. Introduction v4b 16-Apr-17 What are they used for? Offices (Word processing, data bases) Engineering (robot) Game consoles (Kinect, PSP) http://www.trossenrobotics.com/ http://www.draftexcellence.com/wp-content/uploads/2010/11/xbox-360-kinect-games.jpg http://cdn.gamerant.com/wp-content/uploads/kinect-move-interest-low.jpg CENG2400 Ch1. Introduction v4b

CPU on a Chip -> Microprocessor 16-Apr-17 CPU on a Chip -> Microprocessor Microcontroller (MCU) is a computer on a chip CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b System on a chip (SoC) & A new trend http://en.wikipedia.org/wiki/System-on-a-chip . E.g. mobile phone SoC chip (ARM + wireless modules) If the system is too large for an SoC chip, use system in package (SiP):multi- chip system . + wireless module http://www.mobilecomputermag.co.uk/images/stories/news/2008/01/arm-processor.jpg + CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b 16-Apr-17 Other CPUs Intel Pentium Motorola/IBM PowerPC AMD K7 ARM StrongArm Compaq (DIGITAL) Alpha Zilog Z80 Motorola 68000 6502 MIPS Interesting history about microprocessors: http://www.cpushack.com/ It seems only the Intel Pentium and ARM families are still actively being used nowadays. CENG2400 Ch1. Introduction v4b

ARM microprocessor cores Main article: List of ARM microprocessor cores A summary of the numerous vendors who implement ARM cores Architecture Family ARMv1 ARM1 ARMv2 ARM2, ARM3 ARMv3 ARM6, ARM7 ARMv4 StrongARM, ARM7TDMI, ARM9TDMI ARMv5 ARM7EJ, ARM9E, ARM10E, XScale ARMv6 ARM11, ARM Cortex-M ARMv7 ARM Cortex-A, ARM Cortex-M, ARM Cortex-R ARMv8 ARM Cortex-A50[20] Our CENG2400 Course Samsung galaxy 4 CENG2400 Ch1. Introduction v4b http://en.wikipedia.org/wiki/ARM_architecture

CENG2400 Ch1. Introduction v4b History Turing and Turing machine http://www.bletchleypark.org.uk/edu/lectures/turing.rhtm http://www.krcadinac.com/pictures/600px-Turing_machine_1.JPG 8-bit 64-bit 32-bit CENG2400 Ch1. Introduction v4b

computer hardware history Turing develop the first digital computer around 1942. Von Neumann architecture, 1946 Intel 8088 microprocessor (8/16-bit) , 1979 Motorola 68000 (16-bit) 1979. Pentium 4 (32-bit), 2000 Pentium Dual core 2009 ARM 64/32 bit, 2011 CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b Hardware http://images.google.com/images?gbv=2&hl=en&q=memory+ram&btnG=Search+Images http://keppanet.netfirms.com/keppanet/harddisk/hdinside/hddfull2.jpg http://www.nintendowiiremotes.com/img/Wii_Remote_Funtions_2x2.jpg http://www.hardwarelogic.com/articles/reviews/misc/LogitechWave/KeyboardMouse.jpg Hardware Processor Architecture Memory Hierarchy User Interfaces - CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b Software http://www.swc.scipy.org/lec/img/shell01/operating_system.png http://www.easeus.com/resource/images/bios.jpg http://www.hardware-one.com/reviews/i845/Iwill_P4S/BIOS.jpg http://img218.imageshack.us/img218/3165/foldergc5.gif Software Firmware Software Development Operating System/ Device driver - Bios setup - Assembly lang. - Task scheduling Device drivers - Prog. languages CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b Software hierarchy Different layers we will be learning the software that can boot up the system and the making of the device drivers for controlling hardware devices. CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b To be covered Lectures Basic Knowledge Machine Instructions & Assembly Language ARM7 instruction set Input/Output (I/O) Memory Tutorials/Lab Assembly language and C programming Microprocessor interfacing: build robot Use Philips LPC2000 family (ARM7) http://en.wikipedia.org/wiki/NXP_LPC CENG2400 Ch1. Introduction v4b

Lab: build a robot with sensors CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b Our CE2400 ARM robot CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b Some demos Self balancing robot https://www.youtube.com/watch?v=D5UCJojCPdo https://www.youtube.com/watch?v=f9WsAZbPKkc&feature=youtu.be Flute robot https://www.youtube.com/watch?v=NJ7wv2z8Wgk Human following robot https://www.youtube.com/watch?gl=HK&hl=zh-HK&v=75tkIz90oK4 Quad-rotor https://www.youtube.com/watch?v=OGYUKVg35MM&feature=youtu.be Speed encoder https://www.youtube.com/watch?v=7qf_ypIGn_0&feature=youtu.be Previous CENG2400 robot video demos Previous CENG2400 robot video demo1a CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b Our new robot 2014-5 Ultra-sound-radar Electronic compass Speed encoder Previous CENG2400 robot video demo CENG2400 Ch1. Introduction v4b

Overview of an embedded system Internal Input/output Interface Internal ram CENG2400 Ch1. Introduction v4b

Revision of Hexadecimal numbers Binary 0000 1 0001 2 0010 3 4 5 6 7 8 9 10 A 11 B 12 C 13 D 14 E 15 F 1111 Revision of Hexadecimal numbers A hexadecimal digital number has a value from 0 to F In binary representation it has 4 binary bits Different ways to write hexadecimal numbers: E.g. many different forms, all the same meaning 0x7=7h=7H=7hex 0xa=0xA=Ah=a(hex) etc. . Fill in the blanks CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b Memory structure Example 16-bit Address (64K locations) (H=Hex) 8-bit content (data) FFFF H 35H FFFE H 23H … 0ACD H 24H 0001 H 32H 0000 H 2BH Memory is like a tall building. In this example, memory size is 216=64K locations (flats). A 16-bit number can be represented by 4 hexadecimal numbers Each location (a flat) has an address. E.g. address 0000H, address 0ACDH etc. In each address location (a flat) has a data (the content) 8-bit (2 hexadecimal numbers) Exercise 1: For a given memory device, can you change (i) the address, (ii) the data? If the address is 8-bit, how many address locations are there in the memory? If the address is 32-bit, how many address locations are there in the memory? CENG2400 Ch1. Introduction v4b

How does a system start? An example Power up Get content (2BH) of starting address (0000H), this is the machine code, e.g. 2BH here Run the machine code 2BH E.g. machine 2BH asks the machine to jump to location 0ACDH and run the code there What happens after power up? 16-bit Address (64K locations) (H=Hex) 8-bit content (data) FFFF H 35H FFFE H 23H … 0ACD H 24H 0001 H 32H 0000 H 2BH CENG2400 Ch1. Introduction v4b

Important machine program concept Example Important machine program concept 16-bit Address (64K locations) (H=Hex) 8-bit content (data) FFFF H 35H FFFE H 23H … 0ACD H 24H (do something) 0001 H 32H 0000 H 2BH (goto 0ACDH) Basic concept Memory is like a tall building Address cannot change; content (data) can change Memory is for storing program and data Address is incrementing from 0000 to FFFFH (total 64K) Data is random, it is your machine code program. After power up , the processor will automatically goto 0000H , follow Instructions specified by the data Exercise 2: This to make sure you know how to convert hexadecimal to binary code: write 7FFEH and 35H in binary format. CENG2400 Ch1. Introduction v4b Your machine code program

Review questions (Exercise 3) List and discuss the Hardware and Software modules in a computer system. How memory is used in a computer system? List and discuss different types of memory in a computer system. And how do they used for? List the differences between address and data. List the boot-up procedures of a computer? CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b END CENG2400 Ch1. Introduction v4b

Appendix 1:The processor (e.g. ARM7) with 32 bit address bits 32bit Address (232=4G locations) (H=Hex) 32-bit content (data) example FFFFFFFF H 00000035H FFFFFFFE H 00000023H … 00000ACD H 00000024H 00000001 H 00000032H 00000000 H 0000002BH 4G locations CENG2400 Ch1. Introduction v4b

Appendix 2 Answers to exercises For a given memory device, can you change (i) the address, (ii) the data? Answer: (i) no, (ii) yes 2. If the address is 8-bit, how many address locations are there in the memory? Answer: 2^8=256 locations 3. If the address is 32-bit, how many address locations are there in the memory? Answer; 2^32=4G locations CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b Exercise 2 Exercise 2: This to make sure you know how to convert hexadecimal to binary code: write 7FFEH and 35H in binary format. Answer: 7FFEH =0111 1111 1111 1110 (in binary) 35H = 0011 0101 (in binary) CENG2400 Ch1. Introduction v4b

CENG2400 Ch1. Introduction v4b Exercise 3 Exercise 3: List and discuss the Hardware and Software modules in a computer system. How memory is used in a computer system? List and discuss different types of memory in a computer system. And how do they used for? List the differences between address and data. List the boot-up procedures of a computer? Answers can be found in this lecture note. CENG2400 Ch1. Introduction v4b