Design of SMS module using embedded S3C2410 chip

Publisher:春林初盛Latest update time:2013-02-19 Source: dzscKeywords:S3C2410 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere
    introduction

  With the development of embedded technology and communication technology, smart phones have become the mainstream trend of mobile phone development in the field of mobile phones. At present, in the field of smart phones, processor selection, operating system selection and application development are all hot topics of research. In the courses of computer-related majors in colleges and universities, more and more smart phones are involved, and more and more students are also involved in the learning and development of smart phones. Therefore, it is necessary to provide these students with relevant experimental equipment. This paper proposes to build a smart phone hardware experimental platform based on the Samsung S3C2410 chip as the core, and combine the wireless communication module to realize the short message function of smart phone calls. It provides a platform for students to conduct experiments related to smart phones. Through this platform, students can complete various software development when designing smart phones by themselves, which changes the traditional verification-based experimental platform mode and is conducive to the cultivation of students' innovative ability.

  1 Design of smartphone hardware and software experimental platform

  There are three main ways to implement mobile phone hardware:

  (1) Only using baseband chips, usually called feature phones;

  (2) Baseband chip plus coprocessor: This type of product enhances multimedia processing capabilities based on feature phones;

  (3) Baseband processor plus application processor. This is the design used in smartphones. The baseband processor is used for communications, and the application processor is used for multimedia and other applications.

  When designing a smartphone hardware platform, the following aspects need to be considered:

  (1) The application processor should have a sufficiently high main frequency to ensure the system's operating speed so that various applications can run smoothly;

  (2) The system should have sufficient memory space to store applications and user data;

  (3) It has a good human-computer interaction interface, which allows users to operate it conveniently. The baseband processor has stable performance, ensuring real-time communication for users.

  1.1 Hardware Platform Design

  The hardware mainly includes debugging interface, storage system, GSM/GPRS communication module, and human-computer interaction module. The core controller chip uses Samsung's S3C2410 processor, which runs stably at 203 MHz. As an experimental platform, it completes the basic functions of a smartphone and does not require a large amount of data processing. Therefore, the main frequency of 203 MHz can ensure the running speed of the system. The system uses 64 MB SDRAM and 64 MB NANDFLASH as the storage system to ensure the storage space of the system and users. In terms of communication, the application processor connects to the baseband processor, namely the GSM/GPRS communication module, through UART2. The GSM/GPRS module uses SIMCOM's SIM300 module, which has a complete GSM/GPRS tri-band/quad-band solution, supports GSM calls and short message sending and receiving and GPRS data transmission, and can be easily controlled through AT commands. The system displays a graphical operation interface through an LCD and uses a touch screen instead of traditional keyboard operation, which is more user-friendly and more convenient to operate. At the same time, an expansion interface is provided for students to expand other functions of smartphones, such as using the Ethernet interface to realize web browsing. The hardware block diagram of the entire system is shown in Figure 1.

Figure 1 Hardware block diagram of the entire system

  1.2 System software platform design

  The function of the system software platform is to provide a platform for application development. The system software is designed based on the embedded Linux operating system and the embedded GUI Qtopia. The architecture of the entire software platform is shown in Figure 2.

Figure 2 The architecture of the entire software platform[page]

  1.2.1 Bootloader

  Bootloader is the first code to run after the system is powered on. Its main task is to complete hardware initialization and prepare conditions for loading the operating system. Its implementation depends on the hardware, and the Bootloaders of development boards with different architectures vary greatly. In order to better support the hardware devices of the target board, the system chooses to develop its own Bootloader in the ADS1.2 integrated development environment. The implementation process of Bootloader is mainly divided into the following two stages:

  (1) Mainly performs initialization processing closely related to the CPU core and storage devices. This part of the code is usually written in ARM assembly instructions and included in the start.S file. It usually includes the following steps:

  ① Hardware initialization work. Including turning off the watchdog; shielding all interrupts; setting the processor clock and operating frequency; initializing external registers; initializing the stack pointer.

  ② Prepare RAM space for stage (2), copy the code of stage (2) to RAM, and jump to the entry point of stage (2).

  (2) Complete the general startup process and provide driver support for the target board device. This part will be copied to RAM for execution. This code is usually implemented in C language and has strong readability and portability.

  Usually includes the following steps:

  ①Complete the general I/O settings through the set_gpios() function;

  ②Complete memory mapping and memory management unit initialization through mere_map_init() and mmu_init() functions;

  ③ Initialize the MTD device using the mtd_dev_init() function;

  ④Copy the kernel image file and root file system image in NAND FLASH to RAM space;

  ⑤Jump to the first instruction of the kernel.

  At this point, the Bootloader's task is completed, and the next task is completed by the operating system.

    1.2.2 Tailoring and transplanting of operating systems

  The operating system is responsible for managing the entire peripheral device and scheduling each software task. This is very important for smartphones. The operating system uses open source and free Linux, and is ported based on embedded Linux 2.6. The main porting process includes establishing a development environment, downloading kernel source code, modifying configuration files, configuring the kernel, compiling the kernel, and compiling modules. Because the porting process is roughly the same, only a brief introduction is given here:

  (1) The cross-compilation tool on the host machine uses arm-linux-gcc-3.4.1;

  (2) Modify the commom-smdk.c file to set partitions for NANDFLASH;

  (3) Modify the configuration file fs/Kconfig to enable the kernel to support mounting devfs at startup;

  (4) Configure the kernel;

  (5) Compile the kernel and modules, and use the Busy-box tool to create the Yaffs file system.

  1.2.3 Embedded GUI Qtopia Porting

  Embedded GUI is used to develop the graphical interface of SMS and phone application programs. This article uses Trolltech's Qtopia as the graphical interface library, and the version used is Qtopia-core-opensource-src-4.4.3. The main tasks of the transplantation are:

  (1) Modify the qmouselinuxtp_qws.h file to enable Qtopia to support touch screen;

  (2) Configuration, compilation, and installation;

  (3) Copy the relevant library files to the development board and set the environment variables.

  2 Application Design

  Phone and SMS applications are the most basic and core applications of smart phones. The main tasks of phone and SMS application design include: process design of phone and SMS application, serial port communication between communication module and application processor, and phone and SMS application interface development.

  2.1 Phone/SMS Application Flow

  The application uses a timer function to control the entire program flow. The timer is triggered once every 200 ms.

  The detection process of new calls and new text messages is shown in Figure 3. The application initialization needs to initialize the interface between the GSM/GPRS communication module and the application processor. In addition, a 200 ms trigger timer must be defined. After the system is initialized, the timer triggers to read the serial port data for judgment. When there is no data in the serial port, wait for the next timer to start; when there is data in the serial port, judge the serial port data; when there is a new text message prompt in the data, decode the text message according to the decoding format of the PDU text message, and call the UI interface to prompt the user that a new text message has arrived, asking the user whether to read it; when there is a new call prompt in the data, call the UI interface to ask the user whether to answer it.

Figure 3 New call and new text message detection process

  When it is necessary to send a text message or dial a number, the application process is shown in Figure 4. When the user calls the sending interface to edit the text message, enters the recipient, and clicks the send button, the application first determines whether the text message center number and the receiving number are correct. If not, the user is prompted with an error; if the number and number format are correct, the text message content to be sent is encoded according to the PDU text message format, and the AT command is written to the serial port to send the text message. The process of dialing and hanging up the call is very simple. You only need to write ATD+the dialed number and ATH to the serial port. When the dialing is wrong, the user is prompted with a dialing error.

Keywords:S3C2410 Reference address:Design of SMS module using embedded S3C2410 chip

Previous article:Design and implementation of measurement and control system for cupping test machine based on embedded system
Next article:Design of robot servo controller based on STM32

Recommended ReadingLatest update time:2024-11-16 22:25

Transplantation of Embedded Operating System Windows CE.NET on S3C2410 Platform
    At present, there are many types of embedded microprocessors, and embedded operating systems need to support as many processors as possible, which requires the operating system to be customized for different processors.      This paper analyzes the characteristics of embedded operating system Windows CE. NET and
[Microcontroller]
Transplantation of Embedded Operating System Windows CE.NET on S3C2410 Platform
Basic knowledge of the overall analysis of the running process of ucos on s3c2410--ADS compilation and linker
When I was learning the embedded operating system UCOS, I was very confused because I didn't know what the tools I used did for me. Here are my questions at the time: 1: What do compilers and linkers do? I don't know how they do these things yet. I'll learn later. But at that time, I didn't even know what they did. 2:
[Microcontroller]
Burn bootloader to atmega168P
There are two ways to burn the bootloader: 1. Use Arduino IDE to burn the bootloader 2. Use USBasp to burn Method 1: Use Arduino IDE to burn Chinese Tutorial We can use another Arduino, download the burner firmware code, and then connect the microcontroller chip that needs to burn the bootloader for burning. 1. Ha
[Microcontroller]
Burn bootloader to atmega168P
Freescale HCS12 series MCU bootloader detailed explanation (I)
  I'm working on the bootloader of the Freescale HCS12 series microcontrollers. After all, I'm a novice and I still lack basic knowledge in this area. Although the NXP official website has a lot of documents and examples, the examples are too complicated and I don't know how to start the first line of code. I would li
[Microcontroller]
Writing your own bootloader for OK6410
start.S source code: .globl _start _start: // Hardware related settings      // Peri port setup      ldr r0, =0x70000000     orr r0, r0, #0x13     mcr p15,0,r0,c15,c2,4       @ 256M(0x70000000-0x7fffffff)      // Turn off the watchdog  // Write 0 to WTCON (0x7E004000)      ldr r0, =0x7E004000     mov r1, #0     str r1
[Microcontroller]
S3C2410 touch screen driver code analysis 2
#define mode_x_axis_n() { ADCTSC = XP_EXTVLT | XM_GND | YP_AIN | YM_HIZ | XP_PULL_UP_DIS | XP_PST(NOP_MODE); } /*The basic configuration is the same as above, but without converting the x coordinate*/ #define mode_y_axis() { ADCTSC = XP_AIN | XM_HIZ | YP_EXTVLT | YM_GND | XP_PULL_UP_DIS | XP_PST(Y_AXIS_MODE); } /*St
[Microcontroller]
Analysis of S3C2410 RTC Driver
S3C2410 RTC (Real Time Clock) Introduction The real-time clock (RTC) unit can operate on a backup battery when the system power is half-closed. The RTC can pass 8-bit data (BCD code) to the CPU using the two ARM instructions STRB/LDDRB. The data includes seconds, minutes, hours, date, day, month, and year. The RTC
[Microcontroller]
Embedded multi-channel voice recorder based on AC48304
1. Introduction Digital multi-channel voice recorders have many applications in security and monitoring. Some traditional design solutions are based on industrial computers, using data acquisition cards to achieve voice A/D conversion and software to achieve voice encoding and decoding. This solution is costly
[Microcontroller]
Embedded multi-channel voice recorder based on AC48304
Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号