这是飞天的最新一款智能卡产品,前短时间抽时间研究了一下,整体感觉还不错,实现了clr中有关文件操作(有些函数好像有些问题)、加密算法等指令。
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="图片_x0020_0" style="VISIBILITY: visible; WIDTH: 319.8pt; HEIGHT: 214.2pt; mso-wrap-style: square" alt="feitian002.jpg" type="#_x0000_t75" o:spid="_x0000_i1027"><imagedata o:title="feitian002" src="file:///D:%5CUsers%5Cv-hongfl%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image001.jpg"></imagedata></shape>
<shape id="图片_x0020_1" style="VISIBILITY: visible; WIDTH: 415.2pt; HEIGHT: 320.4pt; mso-wrap-style: square" alt="feitian001.jpg" type="#_x0000_t75" o:spid="_x0000_i1026"><imagedata o:title="feitian001" src="file:///D:%5CUsers%5Cv-hongfl%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image003.jpg"><font face="Calibri" color="#000000" size="3"></font></imagedata></shape>
由于我们这边的项目组开发的就是MF3.0的文件系统,所以对它们这个这么小的东东有CPU、有操作系统,支持clr,并且支持文件系统很感兴趣。
它的文件系统是FAT16(MF实现的是FAT32,这就要求存储空间至少有32.52M),通过PC上的一个程序可以实现上下传文件。此外该系统最大的特点就是可以执行.net程序。
<shape id="图片_x0020_2" style="VISIBILITY: visible; WIDTH: 415.2pt; HEIGHT: 310.2pt; mso-wrap-style: square" alt="feitian003.jpg" type="#_x0000_t75" o:spid="_x0000_i1025"><imagedata o:title="feitian003" src="file:///D:%5CUsers%5Cv-hongfl%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image005.jpg"><font color="#000000" size="3"></font></imagedata></shape>
下面是简单的程序,一个是运行在智能卡上(server),一个运行在普通PC上。
//服务端程序,需要用上面的工具(load file)把编译好的程序上传到智能卡上,然后在设置运行即可。
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using SmartCard.Runtime.Remoting.Channels.APDU;
namespace MyCompany.MyOnCardApp
{
///< Abstract >
/// MyServer Abstract .
///</ Abstract >
public class MyServer
{
///< Abstract >
///URI of remote object to be exposed
///</ Abstract >
private const string REMOTE_OBJECT_URI = "MyService.uri";
///< Abstract >
///Register Card Service
///</ Abstract >
///<returns></returns>
public static int Main()
{
//Register communication channel for server to start listening
ChannelServices.RegisterChannel(new APDUServerChannel());
//Register application as a service
RemotingConfiguration.RegisterWellKnownServiceType(typeof(MyService), REMOTE_OBJECT_URI, WellKnownObjectMode.Singleton);
return 0;
}
}
}
//客户端程序,在PC机上运行,可以远程执行服务端上的函数有点DCOM的感觉。
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using SmartCard.Runtime.Remoting.Channels.APDU;
using System.Text;
using MyCompany.MyOnCardApp;
// Make sure the stub of the server application bas been added as reference or its interface has been declared
// stub file is automatically generated in [Server Project Output]\Stub when compiling server application
namespace MyCompany.MyClientApp
{
public class MyClient
{
private const string URL = "apdu://selfdiscover/MyService.uri";
public static void Main()
{
// Create and register a communication channel
APDUClientChannel channel = new APDUClientChannel();
ChannelServices.RegisterChannel(channel);
// Get reference to remote object
MyService service = (MyService)Activator.GetObject(typeof(MyService), URL);
// Call remote method
service.FileOperation();
// Unregister communication channel
ChannelServices.UnregisterChannel(channel);
channel.Dispose();
}
}
}
分享到:
相关推荐
The Microsoft .NET Micro Framework is a small and efficient .NET runtime environment used to run managed code on devices that are too small and resource constrained for Windows CE and the Compact ...
在开发过程中,使用MicroFrameworkSDK.MSI这个安装文件,开发者可以在自己的机器上安装.NET Micro Framework 4.0 SDK,从而开始创建、构建和调试针对小型设备的应用程序。安装后,开发者可以在Visual Studio环境中...
通过阅读《Microsoft .NET Micro Framework嵌入式编程》,读者不仅能够掌握.NET Micro Framework的基础知识,还能了解到如何利用这个框架开发出高效、稳定的嵌入式应用程序,从而在物联网领域开拓新的可能性。...
5. **MicroFrameworkSDK.MSI**:这是一个Windows Installer包,包含了.NET Micro Framework SDK的主要组件,如编译器、类库、文档等,用于开发者在本地环境中建立和管理项目。 6. **Micro Framework SDK Release ...
《玩转.NET Micro Framework移植-基于STM32F10x处理器》这本书的主题聚焦于将.NET Micro Framework(简称.NET MF)应用到STM32F10x系列微控制器上,这是一个涉及嵌入式系统开发、C#编程以及硬件平台集成的重要技术...
它不仅继承了.NET的硬件独立性,还提供了两个关键的抽象层:硬件抽象层(HAL)与平台抽象层(PAL),进一步隔离应用程序与硬件细节,使得开发者能够更方便地将.NET Micro Framework移植到新的硬件平台上。...
.NET Micro Framework(简称.NET MF)是微软开发的一个轻量级.NET框架,主要针对嵌入式设备和物联网(IoT)应用。它提供了基础的.NET编程模型,使得开发者能够使用C#、VB.NET或其他.NET语言来编写高效能的嵌入式程序。...
《Expert .NET Micro Framework》是由Jens Kühner编著的一本专著,该书深入探讨了.NET Micro Framework这一小巧而强大的嵌入式系统开发框架。.NET Micro Framework是微软推出的一个开源平台,旨在为资源有限的设备...
### .NET Micro Framework Key文件部署说明 #### 一、概述 .NET Micro Framework(.NET MF)是一种用于构建和运行小型嵌入式设备上的应用程序的框架。它为开发人员提供了类似于桌面版.NET Framework的功能,但针对...
expert .net micro frameworkexpert .net micro frameworkexpert .net micro framework
.NET Micro Framework(简称.NET MF)是微软开发的一个嵌入式平台,主要面向资源有限的设备,如物联网(IoT)设备、智能家居控制器等。它提供了一个运行环境,使得开发者能够利用C#或VB.NET等高级语言进行编程,而无需...
### GHI .NET Micro Framework 培训教材知识点解析 #### 一、关于教材与目标受众 本教材《GHI .NET Micro Framework培训教材》专为初学者设计,旨在介绍.NET Micro Framework及其在嵌入式系统开发中的应用。教材...
.NET Micro Framework自动化测试工具,需.NET Micro Framework3.0和.NET Micro Framework Test Kit支持...
.NET Micro Framework(简称.NET MF)是微软公司推出的一个嵌入式操作系统平台,主要设计用于资源有限的设备,如物联网(IoT)中的智能硬件、工业自动化设备和消费电子等产品。红牛开发板是一款基于.NET Micro ...
这是我自己改造的.Net Micro Framework模拟器,比windows自带的漂亮多了。 覆盖该目录下的同名文件(路径以实际开发包安装位置为准)即可。 C:\Program Files\Microsoft .NET Micro Framework\v2.0.3036\Tools 支持...
.NET Micro Framework是微软开发的一个轻量级的.NET运行环境,特别设计用于资源有限的嵌入式设备。这个框架首次被引入到ADI(Analog Devices, Inc.)公司的Blackfin处理器上,为开发者提供了一种新的、高效的方式来...