Kết nối giao tiếp RS485

Một phần của tài liệu ĐỒ ÁN TN - XÂY DỰNG HỆ THỐNG THU THẬP DỮ LIỆU QUA GIAO DIỆN RS485 VÀ GSM (Trang 36 - 85)

1. Nội dung thiết kế tốt nghiệp:

3.3 Kết nối giao tiếp RS485

a)Khối nguồn nuôi

Giao tiếp RS485 sử dụng nguồn +5V được tạo ra bởi IC LM1117 với điện áp đầu vào là VIN lấy từ nguồn cung cấp DC-12V.

Trang 34

Hình 3. 6 Khối nguồn nuôi IC Max485

b)Giao tiếp vi điều khiển với Max485

IC Max 485 giao tiếp với vi điều khiển STM32 qua USART3 Rx và Tx . Chân EN_TX kết nối với 1 chân vào ra của STM32F103 để điều khiển quá trình truyền nhận dữ liệu cho IC Max485.

Hình 3. 7 Khối giao tiếp vi điều khiển với IC Max485 3.4 Kết nối module sim

a)Khối nguồn nuôi

Module Sim900 được cung cấp bởi nguồn tạo ra từ IC LM2576 –ADJ là nguồn điều chỉnh điện áp. Từ nguồn vào DC-12V qua Diode bảo vệ và tụ lọc phân cực 100uF vào chân 1 của IC nguồn. Điện áp đẩu ra được điều chỉnh bởi điện trở phân áp 4k7 và 2k để tạo ra điện áp mong muốn.

Hình 3. 8 Khối nguồn nuôi Module Sim900

Nguồn cung cấp điện áp của SIM900 là từ một nguồn điện áp duy nhất VBAT = 3.4V ... 4.5V. Trong một số trường hợp, các đợt sóng bùng nổ trong lúc truyền dữ liệu có thể gây giảm áp khi dòng tiêu thụ tăng lên đến đỉnh điểm điển

Đồ Án Tốt Nghiệp

Trang 35

hình của 2A có khi 3A. Vì vậy, nguồn cung cấp điện phải có khả năng cung cấp đủ dòng lên đến 2A.

Đối với các đầu vào VBAT, khuyến cáo nên cho qua một tụ điện. Đề nghị tụ điện đó khoảng 100μF. Một sự lựa chọn chi phí thấp hơn đó là một tụ điện tantalum 100μF nối song song với một tụ gốm nhỏ (0.1μF đến 1μF). Và các tụ điện nên đặt càng gần chân VBAT càng tốt.

Hình 3. 9 Nối chân VBAT cho module Sim900 [15]

Hình dưới đây là điện áp VBAT gợn sóng ở giai đoạn công suất truyền tải tối đa, các điều kiện kiểm tra là VBAT = 4.0V, VBAT tối đa sản lượng hiện tại = 2A, CA = 100μF tantali tụ (ESR = 0.7Ω) và CB = 1μF.

Hình 3. 10 Điện áp VBAT trong quá trình truyền [15]

b)Giao tiếp với Vi Điều Khiển

Bảng 3. 1 Chức năng chân của module SIM300CZ

STT Chân Tên Chân I/O STT Chân Tên Chân I/O

1 VBAT PWR 2 GND

3 VBAT PWR 4 GND

5 VBAT PWR 6 GND

7 CHG_IN I 8 ADC I

9 TEMP_BAT I 10 VRCT I

11 POWKEY Vin 12 NETLIGHT O

13 POWKEY_OUT O 14 STATUS O 15 NRESET O 16 KBC0 I 17 SCL I 18 KBC1 I 19 SDA O 20 KBC2 I 21 GPIO11 I/O 22 KBC3 I 23 GPIO12 O 24 KBC4 I 25 SIM_VDD O 26 KBR0 O

Trang 36 27 SIM_RST O 28 KBR1 O 29 SIM_DATA I/O 30 KBR2 O 31 SIM_CLK O 32 KBR3 O 33 SIM_PRESENSE I 34 KBR4 O 35 DCD O 36 DSP_CS I 37 DSR O 38 DSP_D/C O 39 RXD I 40 DSP_DATA O 41 TXD O 42 DSP_CLK I/O 43 RTS I 44 PWM1 O 45 CTS O 46 PWM2 O 47 RI O 48 DGB_RXD I 49 DTR I 50 DGB_TXD O 51 LINEIN_R I 52 LINEIN_L I 53 SPK_P O 54 MICP I 55 SPK_N O 56 MICN I 57 SPK2_P O 58 MIC2_P I 59 SPK2_N O 60 VDD_EXT I

Bảng 3. 2 Mô tả chân kết nối DIP

Tên chân I/O Mô tả Đặc điểm DC

Power Supply

VBAT 5 chân VBAT của kết nối DIP được dành riêng để kết nối nguồn áp. Nguồn áp cung cấp cho SIM300CZ phải là một nguồn đơn VBAT = 3.4V ... 4.5V. Nó phải có khả năng cung cấp đầy đủ dòng trong một truyền dữ liệu mà thường tăng lên đến 2A. Có thể trong 0.1ms lên đến 3A trong một số lần, hiện 5 chân là điện áp đầu vào.

Vmin = 3.4V Vmax=4.5V Vnorm= 4.0V

Đồ Án Tốt Nghiệp

Trang 37

pin không được cung cấp cho hệ thống.

Dòng điện ngõ ra cho pin dự phòng khi pin chính là hiện hành và pin dự phòng ở trạng thái điện áp thấp.

Vmin=1.2V Vnorm=1.8V Inorm= 20uA

VDD_EXT O Cung cấp điện áp 2.93V cho mạch bên ngoài. Bằng cách đo pin này, người dùng có thể đánh giá liệu hệ thống điện ON hoặc OFF. Khi điện áp thấp, hệ thống tắt nguồn. Nếu không, hệ thống mở nguồn.

Vmax=3.0V Vmin=2.75V Vnorm=2.93V Imax=60mA

VCHG I Điện áp ngõ vào cho các mạch sạc; làm cho hệ thống phát hiện các bộ sạc.

Vmax=5.25V

Vmin=1.1 * VBAT Vnorm=5.1V

VCHG I Điện áp ngõ vào cho các mạch sạc; làm cho hệ thống phát hiện các bộ sạc. Vmax=5.25V Vmin=1.1 * VBAT Vnorm=5.1V GND Nối đất

Power on or power off

PWRKEY I Điện áp ngõ vào cho các phím mở nguồn. PWRKEY ở mức điện áp thấp cho người sử dụng mở hoặc tắt nguồn hệ thống. Người sử dụng nên giữ cách nhấn phím cho một thời điểm khi điện mở hoặc tắt nguồn hệ thống. Bởi vì hệ thống cần thời gian để xử lý phần mềm.

VILmax=0.2*VBAT VIHmin=0.6*VBAT VImax=VBAT

Giao tiếp Audio

Trang 38

MIC1N tần âm thoại

MIC2P MIC2N

I Ngõ vào phụ trợ dương và âm

của băng tần âm

SPK1P SPK1N

O Ngõ ra dương và âm của băng tần âm thoại

SPK1P SPK1N

O Ngõ ra phụ trợ dương và âm của băng tần âm thoại

BUZZER O Ngõ ra của Buzzer

AGND Nối đất

Các ngõ ra và ngõ vào nói chung

KBC0~KBC4 O Bàn phím ma trận VILmin=0V VILmax=0.3 *VDD_EXT VIHmin=0.7*VDD_EXT VIHmax= VDD_EXT+0.3 VOLmin=GND VOLmax=0.2V VOHmin= VDD_EXT-0.2 VOHmax= VDD_EXT KBR0~KBR4 I DISP_DATA I/O Giao tiếp màn hình DISP_CLK O DISP_CS O DISP_D/C O DISP_RST O NETLIGHT O Đèn báo mạng

STATUS O Báo trạng thái làm việc

GPIO0 I/O

Port ngõ ra ngõ vào chuẩn

GPIO1 I/O

Giao tiếp nối tiếp

DTR I Dữ liệu đầu cuối sẵn sàng VILmin=0V

VILmax=0.3*VDD_EXT VIHmin=0.7*VDD_EXT VIHmax= VDD_EXT+0.3 VOLmin=GND VOLmax=0.2V VOHmin= VDD_EXT-0.2 VOHmax= VDD_EXT RXD I Dữ liệu nhận TXD O Dữ liệu phát

RTS I Yêu cầu gửi

CTS O Xóa để gửi

RI O Báo gửi nhận

DCD O Phát hiện dữ liệu truyền

Đồ Án Tốt Nghiệp

Trang 39

SIM_VDD O Điện áp cấp cho SIM Các điện áp có thể được chọn bằng phần mềm hoặc 1.8V hoặc 3V

SIM_DATA I/O Ngõ ra dữ liệu SIM VILmin=0V

VILmax=0.3*SIM_VDD VIHmin=0.7*SIM_VDD VIHmax= SIM_VDD+0.3 VOLmin=GND VOLmax=0.2V VOHmin=SIM_VDD-0.2 VOHmax= SIM_VDD

SIM_CLK O Xung clock SIM

SIM_PRESENCE I Nhận dạng SIM

SIM_RST O Reset SIM

Tính năng cổng giao tiếp nối tiếp:

 Bảy đường trên giao diện Serial Port.

 Bao gồm: đường dữ liệu TXD và RXD, đường trạng thái RTS và CTS, đường kiểm soát DTR, DCD và RI.

 Serial Port có thể được sử dụng cho CSD FAX, dịch vụ GPRS và gửi lệnh AT điều khiển module. Ngoài ra Serial Port có thể được sử dụng cho các chức năng ghép kênh.

 Serial Port hỗ trợ tốc độ truyền thông như sau: 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 Default là 115200bps.

 Autobauding hỗ trợ tỷ lệ truyền thông như sau:1200, 2400, 4800, 9600, 19200, 38400, 57600 và 115200bps.

Autobauding GSM cho phép động cơ tự động phát hiện tốc độ truyền cấu hình trong ứng dụng máy chủ. Giao diện nối tiếp của cơ cấu GSM Autobauding hỗ trợ cho các mức độ truyền sau: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200bps. Điều này cho phép ta linh động để đưa cơ cấu GSM vào hoạt động mà không có vấn đề gì về tốc độ baud của ứng dụng máy chủ.

Các TXD, RXD và GND phải được kết nối với cổng IO khi người dùng cần phải nâng cấp phần mềm. Các chân TXD, RXD nên được sử dụng để nâng cấp phần mềm. Chân PWRKEY được khuyến cáo kết nối với đầu nối I/O. Người sử dụng cũng có thể thêm một công tắt giữa PWRKEY và GND. PWRKEY nên được kết nối với GND khi SIM900 là nâng cấp phần mềm.

Trang 40

Hình 3. 11 Giao tiếp nâng cấp phần mềm và giao tiếp [15]

Hình 3. 12 Khối giao tiếp Module Sim900 với vi điều khiển 3.5 Kết nối giao tiếp thẻ nhớ

Trong SPI mode, hướng của dữ liệu trên đường tín hiệu được cố định, dữ liệu truyền đồng bộ nối tiếp theo từng byte .

Đồ Án Tốt Nghiệp

Trang 41

Hình 3. 13 Giao tiếp giữa SD Card và SPI [4]

Trong đó:

 SCLK : SPI2_SCK

 DI : SPI2_MOSI

 DO : SPI2_MISO

 NCR: thời gian đáp ứng của lệnh (tùy vào từng loại Card mà có thời gian khác nhau)

Khi một khung lệnh được truyền đến Card, một đáp ứng tương ứng cho lệnh đó ( R1, R2,R3 ) có thể được đọc từ Card. Vì việc chuyển dữ liệu được lái bằng xung clock của SPI do đó sau khi truyền xong khung lệnh SPI cần tiếp tục cấp xung clock cho Card thì mới có thể nhận được đáp ứng từ Card (bằng cách gửi liên tục giá trị 0xFF và đọc giá trị trả về cho tới khi nhận được đáp ứng đúng).

Hình 3. 14 Khối giao tiếp thẻ nhớ với vi điều khiển

SD Card được kết nối với chuẩn giao tiếp SPI2 của vi điều khiển STM32.Các chân SD_DE và SD_WP kết nối với chân vào ra của STM32 để nhận biết và phát hiện có hay không thẻ nhớ được cắm vào socket.

Trang 42

3.6 Sơ đồ nguyên lý

Hình 3. 15 Sơ đồ nguyên lý mạch thiết kế

Đồ Án Tốt Nghiệp

Trang 43

Chương 4: Thiết kế phần mềm 4.1 Tổng quan lập trình cho STM32

4.1.1 Các thiết bị ngoại vi của VĐK

a) Sơ đồ khối VĐK STM32

Hình 4. 1 Sơ đồ khối vi điều khiển STM32F103RC [5]

Hệ thống nhúng ARM cung cấp một phần lớn hơn của dòng chảy dữ liệu bên trong lõi CPU bằng cách truyền dữ liệu nén ở một tỷ lệ rất cao từ STM32F103 thông qua một số lượng nhỏ của các chân ETM để phần cứng bên ngoài cổng thiết

Trang 44

bị (TPA) phân tích. TPA được kết nối với một máy chủ bằng cách sử dụng USB, Ethernet, hoặc bất kỳ kênh tốc độ cao khác.

Hướng thời gian thực và hoạt động của lưu lượng dữ liệu có thể được ghi lại và sau đó định dạng hiển thị trên máy chủ chạy phần mềm chương trình gỡ rối.

b) Ánh xạ bộ nhớ các thiết bị ngoại vi VĐK

Đồ Án Tốt Nghiệp

Trang 45

Bộ nhớ được chia ra làm 8 block mỗi block có dung lượng là 512M byte được đánh địa chỉ từ 0x0000 0000 đến 0xFFFF FFFF.

c) Bộ công cụ hỗ trợ phần mềm dành cho STM32

Vì Keil ARM sử dụng Libraries rời cho dòng STM32 nên khi tạo một Project mới ta phải đính kèm Libraries cho dự án. Thực chất ta hoàn toàn có thể để Libraries ở nơi nào đó tùy thích,việc quan trọng là ta phải thêm đúng đường dẫn đến thư viện trong phần Setup lúc biên dịch là được.

Còn thêm 2 file mà chúng ta nên quan tâm nữa đó là stm32f10x_conf.h và system_stm32f10x.c. 2 file này tốt nhất nên được lưu cùng folder với file main.c để tiện cho việc tìm kiếm.

ST cung cấp cho người dùng bộ thư viện chuẩn lập trình giao tiếp với thiết bị ngoại vi tương thích với chuẩn CMSIS. Thông qua bộ thư viện này, chúng ta dễ dàng giao tiếp với các thiết bị phần cứng chuẩn của các dòng Cortex-M3 của ST.

Thư viện được chia làm 2 phần:

 Phần hỗ trợ nhân Cortex-M3: bao gồm mã giao tiếp với nhân CPU, và đoạn mã start up code.

 Phần hỗ trợ các thiết bị ngoại vi: chứa toàn bộ các hàm thư viện điều khiển thiết bị ngoại vi của ST.

Cấu trúc thư viện CMSIS như sau:

 Library + CMSIS + CM3

+ CoreSupport //thư mục chứa hàm hỗ trợ nhân Cortex-M3 + DeviceSupport

+ ST

+ STM32F10X //System startup code + startup //Start up code

+ Documentation //tài liệu hỗ trợ

+ STM32F10x_StdPeriph_Driver //thư mục chứa hàm hỗ trợ thiết bị ngoại vi

+ inc //thư mục chứa header file + src //thư mục chứa mã nguồn

4.1.2 Công cụ phần mềm biên dịch, gỡ lỗi nạp chương trình của STM32

Trang 46

Hình 4. 3 Phần mềm lập trình keil ARM

Phần mềm keil ARM hỗ trợ hỗ trợ rất nhiều hàm giao tiếp ngoại vi:

 Nhóm“CMSIS”:thêm flie core_cm3.c ở thư mục

“Libraries\CMSIS\CM3\CoreSupport” và system_stm32f10x.c ở thư mục “\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x”.

 Nhóm “StdPeriph_Driver”: thêm các file liên quan đến điều khiển ngoại vi.

 Nhóm“Start up”: thêm file startup_stm32f10x_hd.s ở thư mục “Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm”

 Nhóm “User”: chứa file của người dùng. b)Công cụ biên soạn Source Insight

Để hỗ trợ việc soạn thảo, viết chương trình được thuận tiện thì có một công cụ rất hữu ích, đã và đang được các lập trình viên trên thế giới sử dụng rộng rãi (IBM, Intel…) đó là Source Insight.

Đồ Án Tốt Nghiệp

Trang 47

Việc biên soạn chương trình trên Keil (hoặc đa phần các công cụ lập trình khác như IAR, CodeRed…) rất bất tiện:

• Các tính năng tìm kiếm thường rất hạn chế (tính năng tìm kiếm nhanh, dễ dàng theo dõi các hàm, biến… trong một chương trình gồm rất nhiều tập tin *.c & *.h là rất cần thiết).

• Giao diện soạn thảo đơn điệu (màu sắc của các từ khóa, biến toàn cục, cục bộ …).

Công cụ Source Insight khắc phục rất tốt 2 nhược điểm nêu trên. Với khả năng tìm kiếm, liệt kê kết quả tìm được và giao diện soạn thảo ưa nhìn với nhiều cách chú thích code, giúp người lập trình dễ theo dõi chương trình.

4.2 Thiết kế cấu trúc chung chương trình

Trình lưu đồ thuật toán chung. Bắt đầu Khởi động USART1,USART2 Cấu hình Real Time Khởi động SD Card

Gửi câu lệnh cấu hình Module Sim Nhập thông số từ cột xăng Cột ID: Số Lít: Thành Tiền: Có nhập nữa không?

Cấu hình thời gian nhận từ SĐT Admin đến SĐT nhận tin nhắn Chạy bộ đếm thời gian thực Thời gian thực = Thời gian nhận tin nhắn Gửi câu lệnh AT gửi tin nhắn Kết thúc Lưu thông tin vào thẻ nhớ

Trang 48

4.2.1 Khai báo các hàm giao tiếp RS232, RS485

VoidRCC_APB1PeriphClockCmd(uint32_tRCC_APB1Periph,FunctionalState NewState);

Đây là hàm kích hoạt xung nhịp cho thiết bị ngoại vi.

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

Đây là khởi tạo cấu hình cho cổng GPIO theo cấu hình được lưu trong cấu trúc GPIO_InitTypeDef.

voidUSART_Init(USART_TypeDef*USARTx,USART_InitTypeDef* USART_InitStruct);

Hàm này khởi tạo cấu hình cho cổng USART.

void USART_Cmd(USART_TypeDef* USARTx, FunctionalState NewState);

Hàm này cho phép hoặc không thiết bị ngoại vi giao tiếp USART hoạt động.

4.2.2 Khai báo các hàm điều khiển module sim

Void AT_Configuration();

Hàm cấu hình các câu lệnh mặc định gửi tới Module Sim.

Void AT_Send_SMS();

Hàm này có chức năng gửi câu lệnh AT+CMGS để gửi tin nhắn đến số điện thoại nhận.

4.2.3 Khai báo các hàm đọc ghi thẻ nhớ

MSD_SPI_Configuration();

void MSD_SPI_Configuration(void); void MSD_SPIHighSpeed(uint8_t b_high); _card_disable();

void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState);

Đây là hàm khởi tạo cấu hình các chân cho thẻ nhớ SDCard.

f_mount(0,&fs);

res = f_open( &fsrc , "0:/DemoDoAn.TXT" , FA_CREATE_NEW); res = f_open( &fsrc , "0:/DemoDoAn.TXT" , FA_WRITE);

res = f_write(&fsrc, text1, sizeof(text1), &br);

Trên là các hàm ghi dữ liệu vào thẻ nhớ đã được tạo sẵn 1 file .txt ,ở đây là file DemoDoAn.TXT.

4.3 Triển khai các hàm chương trình

4.3.1 Giao tiếp RS232, RS485

Giao tiếp kết nối bên ngoài với một thiết bị khác bằng ba chân. Bất kỳ giao tiếp USART hai chiều đòi hỏi phải có tối thiểu hai chân: Nhận dữ liệu vào (RX) và Truyền dữ liệu ra (TX):

Đồ Án Tốt Nghiệp

Trang 49

RX: Tiếp nhận dữ liệu ngõ vào là dữ liệu nối tiếp. Kỹ thuật lấy mẫu được sử dụng cho dữ liệu thu hồi để chọn lọc giữa các dữ liệu đến hợp lệ đến và nhiễu.

TX: Truyền dữ liệu ngõ ra. Khi bộ phát bị vô hiệu hóa, các chân ngõ ra trở về cấu hình cổng I/O. Khi bộ phát được kích hoạt và không có gì được truyền đi, các TX pin ở mức cao. Trong chế độ single-wire và Smartcard, các I/O này được sử dụng để truyền và nhận được dữ liệu (tại USART, dữ liệu này sau đó nhận được trên SW_RX).

Mô tả ký tự USART:

Chiều dài Word có thể được lựa chọn là 8 hoặc 9 bit bằng cách lập trình các bit M trong thanh ghi USART_CR1.Các chân TX ở trạng thái thấp trong khi bit Start. Nó ở trạng thái cao trong khi bit Stop.

Một Ký tự rỗi được hiểu như là một bộ khung toàn các sô "1" tiếp theo sau bit Start – tiếp theo bit Start là khung dữ liệu - (Các số "1" sẽ bao gồm cả bit Stop).

Một Ký tự ngừng được hiểu về việc tiếp nhận các số "0 " trong một thời gian của khung dữ liệu. Vào cuối khung ngừng được truyền chèn 1 hoặc 2 bit Stop (bit "1") để xác nhận bit Start. Truyền và nhận được điều khiển bởi một bộ phát tốc độ

Một phần của tài liệu ĐỒ ÁN TN - XÂY DỰNG HỆ THỐNG THU THẬP DỮ LIỆU QUA GIAO DIỆN RS485 VÀ GSM (Trang 36 - 85)

Tải bản đầy đủ (PDF)

(85 trang)